gpt4 book ai didi

同一台机器上的两个进程可以连接到同一个端口吗?

转载 作者:太空狗 更新时间:2023-10-29 11:47:02 26 4
gpt4 key购买 nike

我有几个关于套接字编程的基本问题。我正在尝试编写一个程序(在 C,linux 中),其中多个客户端进程连接到一个服务器进程,并且客户端需要连接到它们自己。尽管客户端将驻留在不同的机器上,但它们位于同一台机器上也是一种情况。这些是我的问题。

  1. 两个客户端进程能否在单独的端口上相互通信?在那种情况下,它们都不会监听端口(就像服务器的监听方式一样)。他们只是使用套接字连接到一个端口并相互交谈。这可能吗?

  2. 如果没有,我该如何在客户之间进行沟通?

关于此的任何想法都会有所帮助。谢谢。

最佳答案

  1. ,在 TCP 中这是不可能的。在 TCP 中建立连接时,您始终连接到监听端口,因此客户端之一必须监听。

  2. 其中一个客户端需要打开监听端口,但是哪一个? 将服务器用作仲裁器!使用服务器调节的协议(protocol):

    • 服务器决定哪个客户端打开端口
    • 该客户端打开端口,监听它并将其地址(主机:端口)发送到服务器
    • 服务器将其发送给其他客户端
    • 其他客户端现在可以连接了!

如果您问两个进程是否可以监听同一台机器上的同一端口,那么答案是否定的。但是使用上面的协议(protocol)你可以避免这种情况。

关于同一台机器上的两个进程可以连接到同一个端口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7796054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com