我有一个单一的客户端,正在尝试使用套接字s1连接到我的主服务器。客户端需要不断尝试使用s1连接到主服务器,并同时连接并持续发送“尝试”消息到我的次要服务器。创建两个套接字并重用端口以及为这两个套接字创建两个绑定,是否是个好主意?还是有更好的方法来实现这一目标?这是一个客户端,并且使用C sockets。谢谢。
如果您的程序是多个服务器的客户端,请为每个服务器使用一个套接字。对于客户端套接字,您根本不需要使用bind
,只需使用connect
。
我认为你正在使用TCP套接字(是吗?)。因此,只需要一个连接套接字。然后,重用端口并不是很重要,因为你的应用程序是客户端应用程序,这是启动连接的部分。任何出站端口都应该可以。
因为每个面向流的套接字只能调用一次connect(2)
,所以您必须使用至少两个套接字来进行两个同时连接(或连接尝试)。
除了在某些奇怪的情况下,您不需要在客户端端口上绑定任何内容。(我想到了Sun RPC端口映射程序守护程序,但幸运的是,我已经十年没有关心过端口映射程序守护程序了。此外,当使用主机身份验证方法时,rlogin
需要作为客户端进行bind(2)
,这是可怕的。)