tcp/ip c++ 即时通讯聊天室(四)实现公网传输

时间:2024-03-20 08:09:51

正常来讲之前三篇文章都是在讲如何在局域网内进行传输数据,那么我们如果想让数据在公网上传输便需要内网穿透技术。

内网穿透技术原理很简单,借用另一个能连上公网的服务器当作跳板连接你的服务端与公网。(大佬们可以用服务器自己搭建一个穿透端口)我们这里则直接利用网上提供的tcp内网穿透服务来实现我们的这一目的。

这里我们利用Sunny-Ngrok的免费tcp穿透服务(因为是免费的所以速度较慢,有钱的可以选择付费的),但对于此聊天所需要的流量来讲已经足够了。

Multichatroom下载

https://download.csdn.net/download/qq_42662283/12488515
tcp/ip c++ 即时通讯聊天室(四)实现公网传输
首先我们在sunny-ngrok官网上注册一个账号,直接邮箱注册就行,过程很简单。

tcp/ip c++ 即时通讯聊天室(四)实现公网传输
tcp/ip c++ 即时通讯聊天室(四)实现公网传输
这里记住一定要选择tcp连接,名称无所谓,连接端口就在10000-11000之内试几个,最近用的人较多,可能要多试几次,然后本地端口就是你的内网地址加上本地端口(之后可以改)

tcp/ip c++ 即时通讯聊天室(四)实现公网传输
这是成功之后的样子
接下来下载ngrok的客户端来实现连接
tcp/ip c++ 即时通讯聊天室(四)实现公网传输
下载之后有两个文件,打开bat文件,exe在windows下使用不了(可以用cmd打开)

tcp/ip c++ 即时通讯聊天室(四)实现公网传输
打开后的界面,输入你的隧道id就可以连接,如果刚注册了隧道可能要等几个小时才能连接

tcp/ip c++ 即时通讯聊天室(四)实现公网传输
如果是这样就连接成功了

接下来是具体如何实现

tcp/ip c++ 即时通讯聊天室(四)实现公网传输
ping一下转发服务器得到ip地址
tcp/ip c++ 即时通讯聊天室(四)实现公网传输
接下来在原先做好的聊天室里输入转发服务器地址和转发端口(注意:不是本地端口)
tcp/ip c++ 即时通讯聊天室(四)实现公网传输
在Server里输入的端口则是注册时使用的本地端口

最后附上成功后的结果
tcp/ip c++ 即时通讯聊天室(四)实现公网传输
如果没有读我之前的文章这里可以使用以下地址下载聊天室的源码

Multichatroom下载

https://download.csdn.net/download/qq_42662283/12488515