为什么udp穿透在建立链接时一方能够接收对端信息但原路返回对端无法接收到?

kawenmai 2017-07-23 03:16:12
在做udp穿透时,同一电信运营商可穿透成功。
但在跨运营商时,例如电信和移动间做打洞穿透时,则无法成功,抓包发现在移动能接收到电信peer那边过来的包,程序中也接收到包并进行了原路回复,则对方无法收到忘了包。无法理解其中原因。
代码示意如下:

struct sockaddr_in peer_sockaddr;

recvfrom(listen_socket, &peer_sockaddr); //接收到对端发过来的打洞包,地址为peer_sockaddr
sendto(listen_socket, peer_sockaddr)); //使用peer_sockaddr原路返回



...全文
328 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
c464580613 2017-09-28
  • 打赏
  • 举报
回复
因为移动是NAT4,你的电信应该是NAT3,NAT4和NAT3不能完全打洞成功
c_flybird 2017-07-23
  • 打赏
  • 举报
回复
我的UDP穿透,双方都不能收到对方的包,能看下我的问题吗? http://bbs.csdn.net/topics/392201967

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧