VB 远程端重新设置 10054
winsock控件UDP协议.RemoteHost属性为局域网IP时通讯正常当这个属性为广域网时,会出现10054错误。怀疑是由于运行计算机在网吧的局域网中,整个网吧使用...
winsock控件 UDP协议
.RemoteHost 属性为局域网IP时通讯正常
当这个属性为广域网时,会出现10054错误。
怀疑是由于运行计算机在网吧的局域网中,整个网吧使用同一个IP导致的。
有没有具体的解决代码。
或者有关的内容给我讲解一下。
我的目的就是要实现跟任何一个拥有网络服务的计算机都能实现通讯。 展开
.RemoteHost 属性为局域网IP时通讯正常
当这个属性为广域网时,会出现10054错误。
怀疑是由于运行计算机在网吧的局域网中,整个网吧使用同一个IP导致的。
有没有具体的解决代码。
或者有关的内容给我讲解一下。
我的目的就是要实现跟任何一个拥有网络服务的计算机都能实现通讯。 展开
1个回答
展开全部
其实,这个是关于UDP协议如何跨NAT网关通讯的问题。
假设AB两台计算机通讯,如果两台计算机都具有公网ip,比如都是ADSL拨号,那么两计算机之间没有NAT网关,可以直接通讯。
如果AB计算机有任意一台或两台都是通过宽带路由器一类的NAT网关上网,则两计算机间存在NAT网关。
假设由其中一台发出一个UDP包,包内含有自己的地址192.168.2.1端口1234,当这个包穿过NAT网关时,网关会创建一个临时会话,包内的地址被NAT网关修改为公网IP及随机分配的端口。
既然不能知道对方临时获得的在网关上的端口,UDP会话也就无法建立,这需要增加一台拥有固定公网IP的服务器来解决。
例如QQ在传送文件或语音对话时,有2种模式,服务器中转和UDP/TCP直连,服务器中转比较简单,两端都登录到服务器上,由服务器转发消息即可。
直连实现大概方式如下:
当A登陆到服务器,服务器获得A的地址在NAT设备上临时分配的端口,然后当B登陆后,就可以查询到A的地址端口并可以发出消息给A,同样A也可以查询并连接上B,直连建立。
如果没有服务器,则需要在NAT设备上映射固定的端口,且需要知道对方的公网IP,才能实现直连。
端口映射及NAT穿透可以在网上搜索,相关资料也比较多。
假设AB两台计算机通讯,如果两台计算机都具有公网ip,比如都是ADSL拨号,那么两计算机之间没有NAT网关,可以直接通讯。
如果AB计算机有任意一台或两台都是通过宽带路由器一类的NAT网关上网,则两计算机间存在NAT网关。
假设由其中一台发出一个UDP包,包内含有自己的地址192.168.2.1端口1234,当这个包穿过NAT网关时,网关会创建一个临时会话,包内的地址被NAT网关修改为公网IP及随机分配的端口。
既然不能知道对方临时获得的在网关上的端口,UDP会话也就无法建立,这需要增加一台拥有固定公网IP的服务器来解决。
例如QQ在传送文件或语音对话时,有2种模式,服务器中转和UDP/TCP直连,服务器中转比较简单,两端都登录到服务器上,由服务器转发消息即可。
直连实现大概方式如下:
当A登陆到服务器,服务器获得A的地址在NAT设备上临时分配的端口,然后当B登陆后,就可以查询到A的地址端口并可以发出消息给A,同样A也可以查询并连接上B,直连建立。
如果没有服务器,则需要在NAT设备上映射固定的端口,且需要知道对方的公网IP,才能实现直连。
端口映射及NAT穿透可以在网上搜索,相关资料也比较多。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询