从品牌网站建设到网络营销策划,从策略到执行的一站式服务
不用tcp的话就是udp
创新互联公司是一家专注于成都做网站、成都网站设计、成都外贸网站建设与策划设计,涿鹿网站建设哪家好?创新互联公司做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:涿鹿等地区。涿鹿做网站价格咨询:028-86922220
udp不需要建立连接 一台设置local端口 然后 winsock.bind (套接字与端口绑定)
另一台设置好remote ip与端口发送数据 就可以收到了
tcp比udp多步骤
就是在发送封包前 一台要设置local端口 然后 winsock.listen
另一台设置好remote ip和端口 然后 winsock.connect
有个细节要注意就是说接受连接的电脑要先 winsock.close 然后再 winsock.accept requestid
还有就是要注意这样必须是在同一个网络里
表达不太清。。同一个网络其实就是 俩台电脑同在一个内网或没有nat设备之类的
当然一台电脑上运行也没有问题
如果有nat设备路由器什么的要设置端口映射 要不然可以去搜一下nat穿透的知识
socket程序不存在内网外网的问题。
你内网能连通,那外网也能连通。问题是你的程序是怎么样的?
比如你的程序是A,你同学的程序是B
那A连接B的时候你是怎么处理的,你能知道B的IP地址吗?
如果双方都可以知道对方的IP地址,那能保证双方的防火墙允许通过吗?
有个简单的方式可以试一试。
比如你同学的机器IP是 10.10.10.10 (这个IP必须保证是公网IP或者说是外网IP),他的程序在6666端口监听。
那你用telnet 10.10.10.10 6666 命令,看看能不能连接上,如果不能,那就是网络不通了。
当然,如果都在内网里,想要穿透NAT网关,这个技术就复杂了,你可以去找找资料。
端口不NAT,两个子网中的两端之间不可能通信。至少要有一方处在公网下或有路由端口映射,不必双方都映射。
建议题主找本计算机网络的书研读一下子网划分这块儿。
需要出口设备进行映射内部地址;或使用打洞技术穿透NAT,但使用TCP打洞非常困难。
参考
穿透NAT是非常困难的,因为NAT的过程中在出口路由器上的Port已经不是你定义的iPort了,具体是多少也不固定
你问的就是网络传输中的经典问题“内网穿透”。
若规定必须用UDP协议,简单解决的话内网应备有一台有公网IP的服务器,命名为“服务器A”。由服务器A负责内网与客户端UDP协议数据交换,然后由“服务器A”与公网另一台“服务器B”再进行UDP协议的数据交换即可。
也就是整体架构设计上,增加一个公网与内网的中转站。
若是可以用TCP协议就不存在此问题了,内网“客户端”直接连接公网“服务器B”,并互发数据。
回答补充:
QQ是支持TCP协议的,你可以到QQ技术支持服务自己看
QQ软件采用2种协议,UDP和TCP/IP协议,您可以在登陆设置中选择协议登录。
在用UDP协议时,QQ有专门措施防止数据丢失,发送数据之前它会ping对方主机,如果没有回复,就通过TCP协议服务器转发。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图