从单个客户端套接字连接到多个服务器C.

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

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

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

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

除了奇怪的情况之外,您不需要在客户端端口上bind(2)任何内容bind(2) 。 (我正在考虑Sun RPC portmapper守护程序,但幸运的是,自从我关心了portmapper守护程序以来已经差不多十年了。当使用host-authentication方法时, rlogin还需要bind(2)作为客户端。可怕。)