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

use*_*639 -1 java sockets serversocket

我很困惑和搜索,但无法找到我的问题的答案,帮助我....

ServerSocket s= new ServerSocket(port);
Run Code Online (Sandbox Code Playgroud)

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

Ant*_*sss 7

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

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