OpenVPN Connect使用连接公网VPN服务器实现内网穿透

安装并运行OpenVPN Connect

 

点击AGREE 

添加配置.OVPN文件

 点击连接

连接成功

两个内网主机通过公网VPN穿透

使用RasDial函数建立RAS连接后,我们可以通过以下方式来判断连接是否成功: 1. 查看返回值:RasDial函数返回一个DWORD类型的错误代码,如果返回值为0,则表示连接成功建立。如果返回值不为0,则表示连接建立失败,可以根据返回的错误代码来判断失败原因。 2. 查看连接状态:可以使用RasGetConnectStatus函数来查询RAS连接的状态。如果连接状态为RASCS_Connected,则表示连接已成功建立;如果连接状态为RASCS_Disconnected,则表示连接建立失败或已断开。 以下是一个示例代码,演示如何使用RasDial和RasGetConnectStatus函数来判断RAS连接是否成功建立: ```c++ #include <windows.h> #include <ras.h> int main() { DWORD dwRetVal; HRASCONN hRasConn; RASDIALPARAMS rdParams; // 初始化RASDIALPARAMS结构体 rdParams.dwSize = sizeof(RASDIALPARAMS); strcpy(rdParams.szEntryName, "My VPN"); // RAS连接名称 strcpy(rdParams.szUserName, "username"); // 用户名 strcpy(rdParams.szPassword, "password"); // 密码 // 建立RAS连接 dwRetVal = RasDial(NULL, NULL, &rdParams, 0L, NULL, &hRasConn); if (dwRetVal != 0) { // 连接失败 printf("RasDial failed with error %d\n", dwRetVal); return 1; } // 等待连接成功 RASCONNSTATUS rasStatus; rasStatus.dwSize = sizeof(RASCONNSTATUS); do { dwRetVal = RasGetConnectStatus(hRasConn, &rasStatus); if (dwRetVal != 0) { // 获取连接状态失败 printf("RasGetConnectStatus failed with error %d\n", dwRetVal); break; } if (rasStatus.rasconnstate == RASCS_Connected) { // 连接成功 printf("RAS connection established successfully!\n"); break; } Sleep(1000); // 等待1秒后重新获取连接状态 } while (rasStatus.rasconnstate != RASCS_Disconnected); // 断开RAS连接 RasHangUp(hRasConn); return 0; } ``` 在以上示例代码中,我们使用RasGetConnectStatus函数来获取RAS连接的状态,并在连接成功建立后,通过打印一条成功信息来提示用户。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宏权实验室

有你的鼓励,我会更加努力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值