当前位置: 代码迷 >> J2EE >> ServerSocket的有关问题
  详细解决方案

ServerSocket的有关问题

热度:35   发布时间:2016-04-22 01:41:32.0
ServerSocket的问题
socket.accept()会阻塞等待连接。如果一个时刻有多个连接请求呢。
Java code
while(true){ Socket s =  socket.accept();}

此时其他请求会阻塞?那谁来维护其他请求的执行顺序呢,是不是内部有个队列保存所有的请求啊。

------解决方案--------------------
你肯定要多线程来处理嘛..
------解决方案--------------------
建议使用NIO来实现吧,其实相对单纯使用socket来编程,就多了两个概念:channel和byteBuffer,而且nio本身实现了非阻塞机制,即一个轮询写入channel中的数据。
------解决方案--------------------
此外,可以使用多线程/线程池的方法也可以实现socket的费阻塞通信。
------解决方案--------------------
可以用非阻塞通讯。。。NIO