桥接两个插座

Ita*_*dev 5 bridge sockets

我想知道是否可以桥接两个传入的 tcp套接字。
例如:

Client A  ----->  Server  <----- Client B
Run Code Online (Sandbox Code Playgroud)

服务器将它的魔法发送给两个客户端,然后它们绕过服务器相互连接

                  Server
Client A  ----------><---------- Client B
Run Code Online (Sandbox Code Playgroud)

更新:

这个想法是当这些客户端无法绑定到端口进行侦听时,仍然能够在服务器的帮助下在彼此之间创建连接。

例如客户端 A 和客户端 B 与服务器有 tcp 套接字。用户 A 决定与用户 B 聊天并创建与服务器的新 tcp 连接,并请求将其与用户 B 进行桥接。服务器将该请求发送给客户端 B,并且它还为该聊天打开了与服务器的新 tcp 连接线。

现在,当服务器同时拥有来自 A 和 B 的聊天连接时,它会桥接它们,并且它们可以在没有服务器的情况下工作,因此服务器将不必处理两个用户共享的所有消息和文件。这就是想法/

har*_*ymc 1

目前尚不清楚这两个客户端是否位于同一网络上。我认为他们不是,否则这个问题就不会出现。

根据上述假设,一个客户端无法直接将 TCP/IP 数据包寻址到另一个客户端,因此这绝对需要一个桥接器。所以一般来说,答案是这是不可能的——总是需要一座桥作为中介。

但是,如果两个客户端都通过路由器连接到 Internet,则可以使用 Internet 作为桥梁,例如使用pwnat软件。更多详情请看我的这个回答。