2 yuemuhan999 yuemuhan999 于 2016.01.15 12:37 提问

java 客户端Socket端口问题

tcp问题,客户端Socket提问,getLocalPort(),连接的是本地的服务端,第一次运行是2880,第二次运行是2881,第三次运行是2882,我想了解客户端的端口是怎么回事,端口是怎么分配的?

5个回答

enpterexpress
enpterexpress   2016.01.15 12:49

一个连接占用一个端口,分配端口有自己的算法
像这个就是随机分配不常用的

91program
91program   Ds   Rxr 2016.01.15 12:56

端口分配没有什么规定,像偶在程序实现 TCP/UDP 的程序中都是随便选一个不常用的端口。
客户端使用什么端口,一般由服务器决定。因为只有尝试连接服务器的指定端口,才能与服务器建立连接。

CSDNXIAOD
CSDNXIAOD   2016.01.16 00:21

Java Socket服务器与客户端实例
java使用多线程编程,实现socket服务器客户端交互
java Socket 客户端实践
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

u011585735
u011585735   2016.01.16 14:01

TCP 服务端启动时需要自己绑定端口,而客户端启动时不需自己绑定端口,会随机分配一个不常用的端口。

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.17 13:44

在TCP/IP的端口分配机制中看到,服务器的保留端口是用来监听发送到服务器的请求的。
当服务器收到客户端请求后,便会建立一个线程负责跟客户端进行通信,而这个新建的线程的端口号是服务器自由分配的,即客户端Socket的端口,这样建立通信之后,然后这个线程继续用这个端口与客户机通信的。
相同问题的帖子:http://bbs.csdn.net/topics/390278142

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!