P2P完全解决方案,希望高手参与讨论,500分相送!(200分)

  • 主题发起人 主题发起人 乡村月光
  • 开始时间 开始时间
学习
再学习
 
to mjy97:源码已经发给你了。
你所说的问题我的解决思路是,所有需要反馈和握手信息都通过另外的一个RAW socket发送,让A和B连接到C的Socket按正常情况接收,比如按TCP协议,它接收到一个数据包会给C发一个应答,当然A或者B收不到,但没关系,让各自的RAW socket给对方再发一个同样的包,只是这样有点浪费带宽。总之接收方需要什么信号,都通过RAW socket来协商发送,TCP连接只管接收,只要保证在适当的时候发送适当的数据包应该就可以了。

欢迎各位继续讨论!
 
to:乡村月光
源码收到!谢谢!!我的UDP是通过NAT来通讯的,握手服务端可解析出客户端NAT映射的IP和端口,还没加SOCKS代理,过两天架代理(现在是NAT)服务器调试通过后再发给你。

我觉得还是有问题,主要是丢包确认。
例如:
A模拟C-------------> B //不可能用可靠TCP协议啊,只能用RAW SOCKET组包发送
B收到A包(模拟C) ---> C //数据握手,可靠性确认,数据有丢就要C重发(实际是A)
A模拟C回应(未收到B的回应,都跑到C那去了,A再模拟C发送确认信息到B)---->B // 但A不知道B发给C的是信息是收接成功还是要求重发啊,A该发什么信息给B呢,难道都想当然B都成功接收!!!!!即使实现了也是不可靠的!!!!!!

 
多人接受答案了。
 
后退
顶部