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

时间:2011-03-23 07:22:59

标签: c sockets

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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