设置Java Socket的端口

时间:2013-04-16 23:04:26

标签: java sockets

在创建客户端时,您如何知道在java中为Socket对象选择的有效端口是什么?

例如,我尝试过Socket("localhost", 0)

但是,由于无法绑定到端口,我最终会抛出异常。

我知道当端口为0时,ServerSocket绑定到任何空闲端口。初始化套接字时,客户端是否有类似的设置?

3 个答案:

答案 0 :(得分:2)

来自JavaDocs

public Socket(InetAddress address, int port)
       throws IOException

字符串不是InetAddress。使用InetAddress.getByName()从字符串创建InetAddress(确保字符串是网站的主机名)。


注意:您无法始终自由选择使用哪个端口,在某些系统上,可能会保留范围并将其视为用户应用程序的禁区。

答案 1 :(得分:2)

客户端需要知道服务器正在侦听哪个端口。 What Is a Socket?有详细解释,Reading from and Writing to a Socket有示例代码。

答案 2 :(得分:1)

该参数指定要连接的目标端口,而不是要绑定的本地端口。本地端口是自动分配的,您不必担心。您需要知道要连接的服务器端口。对目标(连接)端口使用零是没有意义的。