默认
打赏 发表评论 46
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
这段时间一直在想怎么打洞,折腾了好久,直到看到这句话:“这是由于标准的伯克利(Berkeley)套接字的API是围绕着构建客户端/服务器程序而设计的...”。验证了自己的想法:客户端/服务器的模式写在了UNIX的TCP网络套接字编程的基因里面,或者说该套接字默认的通信模式就是客户端/服务器。
评论 46
引用:JackJiang 发表于 2020-08-30 22:00
你最终打洞成功了吗

没有打洞成功,我使用的是SpringBoot+Netty+WebSocket,流程是1.本地内网启动两个客户端,并向公网服务器注册,此时公网服务器拿到了两个客户端的对外公网IP+端口
2.客户端向彼此的对外公网IP发起连接请求(结果是均超时了)
后来分析原因可能是NAT设备对我的连接请求包给丢弃了,依据摘抄华为NAT设备配置手册
其中有这么一句话:
由于IPv4地址的短缺以及出于安全考虑等因素,在因特网中广泛采用了NAT技术。由于不同厂商实现的NAT功能不同,可能会导致使用STUN、TURN、ICE技术的应用软件无法穿越NAT,因为这些技术广泛依赖于SIP代理等软件。SIP属于多通道应用,在功能实现时需要创建多个数据通道链接。为了保障多个通道的链接,必须配置NAT映射模式和过滤方式,只允许符合映射关系、过滤条件的报文通过。

需要配置才能让外部IP对内部服务访问
这让我怀疑所谓的P2P、NAT穿越是否具有真正的可行性
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部