ServerSocket端口号可以是任何5009,12221,6 785等。但为什么呢?

时间:2014-01-31 09:21:22

标签: java sockets serversocket

我很困惑并且搜索了很多,但找不到我的问题的答案,帮帮我....

ServerSocket s= new ServerSocket(port);

此端口号来自何处? 即使我使用4位或5位数字中的任何一个数字,它仍然可以完美地运行,但为什么以及如何? 例如端口号可以是任何5009,12221,6785等,但为什么呢? 谁决定它应该是多少?

1 个答案:

答案 0 :(得分:7)

您可以为服务器端应用程序指定侦听端口,因为客户端必须知道它应该尝试连接到哪个端口。

由于端口范围1-1024是为系统服务保留的(这只是按惯例,而不是规则),您可以从(1024,65535)中选择任何端口。如果您选择的端口被另一个应用程序占用,它只会抛出异常。如果你没有指定端口号,它将被随机生成。