【问题标题】:Connecting to multiple servers from a single client socket C从单个客户端套接字连接到多个服务器 C
【发布时间】:2011-03-23 07:22:58
【问题描述】:

我有一个客户端正在尝试使用套接字 s1 连接到我的主服务器。客户端需要继续尝试使用 s1 连接到主服务器,但同时连接并继续向我的辅助服务器发送“尝试”消息。创建 2 个套接字、重用端口并为这 2 个套接字创建 2 个绑定是个好主意,还是有更好的方法来实现这一点?这是客户端并使用 C 套接字。谢谢。

【问题讨论】:

    标签: c sockets


    【解决方案1】:

    如果您的程序是多台服务器的客户端,请为每台服务器使用一个套接字。客户端套接字根本不需要 bind,只需 connect

    【讨论】:

    • 谢谢。不确定绑定。现在每个服务器使用 1 个套接字。
    • @Fred Foo 以便客户端可以在客户端的同一端口上连接到具有不同 IP(当然是)的多个服务器?
    【解决方案2】:

    我认为您正在使用 TCP 套接字(不是吗?)。因此需要一个用于连接的套接字。 然后重用端口并不那么重要,因为您的应用程序是客户端应用程序,它是启动连接的部分。任何出站端口都应该没问题。

    【讨论】:

      【解决方案3】:

      因为每个面向流的套接字只能调用一次connect(2),所以必须至少使用两个套接字才能同时建立两个连接(或连接尝试)。

      你不需要在客户端端口上bind(2) 任何东西,除非在奇怪的情况下。 (我正在考虑 Sun RPC portmapper 守护程序,但幸运的是,自从我关心 portmapper 守护程序以来已经将近十年了。在使用主机身份验证方法时,rlogin 需要 bind(2) 作为客户端,这太可怕了。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-13
        • 1970-01-01
        • 2015-10-01
        • 2021-08-17
        • 2017-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多