ServerSocket 的 backlog 表示最大缓冲队列
作者:
赵峰涛 | 来源:发表于
2017-11-11 22:53 被阅读0次 // 像如下程序,只能顺序一个一个的处理客户端连接,如果同时有3个客户端发起请求
// 此时会处理一个,将剩余两个放到缓冲队列,如果同时有4个客户端发起请求,则会有
// 一个客户端连接失败
@Test
public void testServerBio(){
try(ServerSocket serverSocket = new ServerSocket(8080,2);){
while(true){
Socket socket = serverSocket.accept();
SocketAddress remoteSocketAddress = socket.getRemoteSocketAddress();
System.out.println(remoteSocketAddress);
InputStream in = socket.getInputStream();
int recvSize = 0;
byte[] recvBuf = new byte[1024];
while((recvSize = in.read(recvBuf)) != -1){
byte[] readBuf = new byte[recvSize];
System.arraycopy(recvBuf,0,readBuf,0,recvSize);
CharsetDecoder decoder = StandardCharsets.UTF_8.newDecoder();
System.out.println("recv:" + decoder.decode(ByteBuffer.wrap(readBuf)) );
}
}
}catch (IOException e){
e.printStackTrace();
}
}
本文标题:ServerSocket 的 backlog 表示最大缓冲队列
本文链接:https://www.haomeiwen.com/subject/sewgmxtx.html
网友评论