最近在玩udp p2p通讯, 遇到一个问题, 希望有经验的朋友指点一下, 感谢

hyblusea hyblusea 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
计算机A, B 分别位于NAT之后(俗称为内网), 计算机C在公网, 如下图:
A<----------->NatA<--------------->C<-------------------->NatB<------------->B

A,B向C发送消息后, C能够获取到A,B的映射IP和映射端口等信息, 因此C通过A和B映射IP、映射端口可以向A, B发送消息。
如果A需要将消息发送给B, 目前已经实现由C进行中转, 但这不符合P2P的思想,也增加了C的负载。于是希望通过C能够打通A与B的点对点连接.

参考网上一篇文章 http://andylin02.iteye.com/blog/444666, 里面有这样一句话:
"那么A要向B发送消息怎么办呢?需要C向B发送一个消息告诉B方A的地址让B向这个地址发送一个消息,对A进行一个穿透。这样A就可以向B发送消息了。"

经测试以后发送B直接使用A的映射地址和端口对其发送消息, A无法接收, 于是再搜索相关资料得知, A的映射地址和端口仅对于计算机C是有效的....

所以请教一下高手, 正确的做法是怎样的呢? 希望能分享一些经验 , 不甚感谢 .
...全文
评论 7
收藏 已收藏
分享
返回顶部
hyblusea
C# 111,129 成员 642,538 内容