while(true)
{
try{
Socket socket = serverSocket.accept();
System.out.printf("接受Socket之后的客户端:%s\n",socket.getInetAddress().getHostName());
.....
.....
}
}
我在运行的时候该accept接受到了一个客户端后,正常执行了后面的语句,可是在没有接受到第2个客户端情况下,执行了第2句的System.out.printf("接受Socket之后的客户端:%s\n",socket.getInetAddress().getHostName())这条语句。
所以我想问:说的accept阻塞是不是说,只要没有新的客户端接入到服务器上,那么accept就停在那里,直到有新的客户端接入才会执行后面的语句?
------解决方案--------------------
------解决方案--------------------
Socket socket = serverSocket.accept();
accept会堵塞,直到有客户端发起请求,你可以创建一个线程处理客户端请求。
------解决方案--------------------
当Accept监听到行的连接请求以后才会继续执行,然后服务端可以通过 Socket socket = serverSocket.accept() 获得客户端的socket 然后可以通过客户端的socket获得outputstream 或者inputsream 然后读取客户端的数据,或者给客户端发送数据 ,你想想你都没有监听到客户端的请求 你从哪儿去得到客户端的socket 没有请求肯定是堵塞的。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------