若规定必须用UDP协议,简单解决的话内网应备有一台有公网IP的服务器,命名为“服务器A”。由服务器A负责内网与客户端UDP协议数据交换,然后由“服务器A”与公网另一台“服务器B”再进行UDP协议的数据交换即可。
也就是整体架构设计上,增加一个公网与内网的中转站。
若是可以用TCP协议就不存在此问题了,内网“客户端”直接连接公网“服务器B”,并互发数据。
回答补充:
QQ是支持TCP协议的,你可以到QQ技术支持服务自己看http://service.qq.com/info/20038.html
QQ软件采用2种协议,UDP和TCP/IP协议,您可以在登陆设置中选择协议登录。
在用UDP协议时,QQ有专门措施防止数据丢失,发送数据之前它会ping对方主机,如果没有回复,就通过TCP协议服务器转发。
服务器先进行Bind ()绑定服务器的端口
然后BeginReceive接受客户端发送的数据
客户端Bind ()绑定客户端接受和发送数据的端口
SendTo()来发送数据就可以
不需要进行BeginConnect,因为UDP不需要连接
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)