我试图使p2p网络在tcp

I am trying to make p2p network over tcp

本文关键字:网络 tcp p2p      更新时间:2023-10-16

我使用Indy组件包。实际上,我成功地使p2p网络通过udp,它现在还在工作,但与udp我需要发送一些ping包每次,否则路由器将删除映射端口列表中的虚拟端口!对于视频或声音或游戏项目,udp是最好的方式,但对于我的项目,我需要它通过tcp。

我是怎么做的:我有一台服务器机器拥有一个真实的ip,所有客户端在切换到p2p模式之前都需要向服务器发送数据包,现在服务器知道所有客户端在路由器上创建的虚拟端口(出端口),如果一些客户端想向另一个客户端发送数据,他只需要将数据发送到另一个客户端ip和路由器上的虚拟端口。路由器可以自动映射。

我在tcp中尝试同样的方式,客户端将数据发送到另一个客户端ip和虚拟端口(在路由器上),但tcp客户端组件无法接收它!使用udp可以接收

为什么over tcp的p2p拓扑结构不同于udp

或者我如何使用idtcpserver组件在路由器上创建虚拟端口来发送数据到服务器机器

sockets与TCP绑定。UDP不以相同的方式绑定。
TCP和UDP的区别

在您拥有的包中(如果您提供它的名称,您可能会得到更多帮助)应该有某种connection / socket / binding到连接到服务器的客户端。您需要向该连接发送数据。