winsock的通信时,如果两点之中有一个在内网,是否只有连接的时候需要nat技术支持?

发布时间:2024-11-08 14:19 发布:上海旅游网

问题描述:

或是连接及连接后的信息交互(每次)都需要nat技术的支持?

问题解答:

内网对公网通讯常见方法有两个.

第一个是做映射方法比较简单但是需要有能力在网关设备上映射所以实用性不大.

对于编程来说第二个方法比较实际.

方法如下:
1.内网计算机向公网发送请求.
2.公网会收到内网计算机发来的程序的公网IP,以及发送端口这样我们就可以实现下一步了
3.公网计算机只需要使用对方的IP,和对方发送用的端口返回信息就可以了.

做个假设:
内网计算机A,公网计算机B,网关C.

内网计算机(IP:192.168.0.2)发送请求到公网计算机(IP:218.88.88.88)的8000端口.

正常情况下B是可以收到的,但是B收到的信息的源地址是 C的公网IP以及一个随机端口假设是 218.88.88.89:12345

这时B如果要给A发消息只用设置源地址为 218.88.88.89:12345 就可以了.

因为C的 12345 端口已经映射到了 A 上,当然这里说的是UDP通讯

如果是TCP通讯比较容易

因为你是监听的,所以当有连接连入时你直接回复就可以了,不需要专门设置IP和端口

当然根据开发环境不同,方法略有差异,但是主思想一样.

热点新闻