在Java Socket上设置源端口?

And*_*eiM 11 java sockets

我是套接字编程的新手:

是否可以在Java Socket上显式设置源端口?

我正在开发一个客户端/服务器应用程序,客户端可能会在几个端口上侦听来自服务器的回复.如果我可以在初始化Socket时在客户端设置此回复端口,那将是很好的,这样服务器就能够确定在另一端回复哪个端口.

And*_*s_D 6

它通常是这样的:

首先,服务器在众所周知的端口上打开ServerSocket并等待输入.

同时,客户端打开一个(客户端)Socket,其中包含服务器主机名和这个众所周知的端口地址.它向服务器发送请求消息以初始化通信会话.

服务器接收消息,生成一个工作线程,该线程在另一个端口上打开另一个ServerSocket,服务器发送一个响应,它告诉客户端这个端口号.

现在,客户端关闭实际连接并创建一个新的Socket,现在使用他刚刚被告知的端口号.

这样,服务器一次可以处理多个客户端,因为每个客户端都获得了他自己的"连接"(端口).


unw*_*ind 5

是的,使用bind()方法。这反映了bind()大多数 C 级套接字实现中可用的功能。请注意,您不能总是自由选择要使用的端口,在某些系统上,某些范围被保留并被认为是用户应用程序的禁区。