在没有服务器的情况下为对等通信更改 2 个客户端套接字?
Posted
技术标签:
【中文标题】在没有服务器的情况下为对等通信更改 2 个客户端套接字?【英文标题】:Changing 2 client sockets for a communication peer to peer without the server? 【发布时间】:2013-09-16 14:00:54 【问题描述】:这个场景可以不用webrtc吗?
-
客户端 A 连接到服务器
客户端 B 连接到服务器
服务器向 B 和 A 发送信息以及彼此的信息
A 和 B 开始使用相同的连接直接交谈(例如,通过使用新的端口/IP 地址转换他们的套接字信息)
注意:客户端 A 和 B 没有任何套接字服务器。他们只是客户
非常感谢。
【问题讨论】:
您需要转换套接字还是关闭一个并创建另一个就足够了? 【参考方案1】:建立直接的 TCP 连接绝对是可能的,如果至少有一个客户端可以接受传入的 TCP 连接。在这种情况下,服务器只需告诉另一个客户端要连接的 IP 地址和端口,然后两个客户端就可以直接通过新的 TCP 连接进行通信。
另一方面,如果两个客户端都在防火墙或 NAT 之后,事情就会变得更加不确定——在某些情况下,您可以使用TCP hole punching techniques 来启动直接 TCP 连接;在其他情况下,你只是不走运。
在任何情况下(AFAIK)都不能修改现有的 TCP 连接以拥有新的端点; TCP 连接的端点是固定的,要获得新的端点,您必须建立一个新的 TCP 连接。
【讨论】:
以上是关于在没有服务器的情况下为对等通信更改 2 个客户端套接字?的主要内容,如果未能解决你的问题,请参考以下文章