java多线程socket通信原理是什么?

2024-12-04 07:19:57
推荐回答(5个)
回答(1):

第一,程序是通过分时进行服务的。就是说一个程序监听一个端口,第一秒可以从别的地方来一个包,第二秒可以从另一个地方来一个包。
第二,每个socket都会有包发送来的ip地址和端口号,服务器向这个ip对应机器的端口发送数据以回应对方。

回答(2):

简单点说, 每个socket都保有一些信息, 比如他所对应的客户端地址和端口等等, 来唯一确定他所负责的客户端, 所以任何到达10000端口的包都可以有去处: 如果已经有socket和他对应了, 那么交给socket处理, 如果没有, 那么放进请求队列, 等待.accept()方法去抽取他并生成一个socket来和他对应.

回答(3):

当Server每接受到一个Client连接请求之后,都把处理流程放到一个独立的线程里去运行,然后等待下一个Client连接请求,这样就不会阻塞Server端接收请求了。每个独立运行的程序在使用完Socket对象之后要将其关闭。这样就实现了多线程socket通信。

回答(4):

socket 需要 把自己的 ip 告诉ServerSocket,就是根据ip来区分的

回答(5):

防止阻塞

如果不用线程,你在主线程中侦听端口,
那么你会发现,你如果不连接上的话,就会一直在等待,什么也做不了。