我有一个使用UDP端口25565的客户端和服务器应用程序。 为了在同一台机器上运行这些,因为只有一个应用程序可以将自己绑定到端口25565,这是否意味着我需要使用两个单独的端口在应用程序之间传输数据?
我想到的是以下内容 -
客户 - > 25565 - >服务器
客户< - 25566< - 服务器
这是唯一的解决方案,还是有另一种处理方法?
答案 0 :(得分:4)
回答你的问题。 TCP / IP连接是双向的,一旦建立,服务器就可以向客户端发送数据,反之亦然。
我会像这样画出这个计划:
SERVER端口25565< - > CLIENT端口25566(或任何其他端口)
答案 1 :(得分:2)
嗯,不。只有服务器需要侦听端口25565 - 客户端将只连接到该端口。没有理由指定端口应该“使用”哪个客户端连接到该端口。此外,一旦服务器接受了连接,端口就可以侦听其他请求。
答案 2 :(得分:0)
单独UDP端口的重点是消除侦听传入数据包的应用程序之间的冲突。更改其中一个端口可能是最佳解决方案。
但是,如果您确实希望两个程序都在同一端口上侦听,则需要使用虚拟网络接口,例如TUN / TAP(有Windows port)。然后,两个应用程序将绑定到具有相同编号但在不同网络接口上的端口。