我有一个使用UDP端口25565的客户端和服务器应用程序。为了在同一台机器上运行这些应用程序,因为只有一个应用程序可以将自己绑定到端口25565,这是否意味着我有必要使用两个单独的端口在应用程序之间传输数据?
我的想法是:
Client -> 25565 ->服务器
客户端<- 25566 <-服务器
这是唯一的解决方案,还是有其他方法来处理这个问题?
发布于 2012-03-04 22:46:12
你的服务器应用程序打开一个端口并等待客户端connect.
来回答你的问题。TCP/IP连接是双向的,一旦建立,服务器就可以向客户端发送数据,反之亦然。
我会画出这样的方案:
服务器端口25565 <->客户端端口25566 (或任何其他端口)
发布于 2012-03-04 22:29:27
嗯,不是。只有服务器需要侦听端口25565 -客户端将直接连接到该端口。没有理由指定端口应该“使用”哪个客户端来连接到该端口。此外,一旦服务器接受了连接,端口就可以侦听其他请求。
发布于 2012-03-04 23:34:20
单独的UDP端口的全部意义在于消除侦听传入数据包的应用程序之间的冲突。更改其中一个端口可能是最好的解决方案。
但是,如果您确实希望这两个程序监听同一端口,则需要使用虚拟网络接口,如TUN/TAP (有一个Windows port)。然后,两个应用程序将绑定到具有相同编号但位于不同网络接口上的端口。
https://stackoverflow.com/questions/9559433
复制