java如何在ServerSocket中获得挂起的请求数或接受请求而不阻塞?
我创建了java.net.ServerSocket
的子类
在run
方法中,我希望获取所有挂起的请求并向它们发送错误消息
如何使用ServerSocket
进行此操作
这是我的密码:
public class SafeWalkServer extends ServerSocket implements Runnable {
public SafeWalkServer(int port) throws IOException {
super(port);
}
@Override
public void run() {
try {
boolean isShutdown = false;
while (!isShutdown) {
Socket client = accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter writer = new PrintWriter(client.getOutputStream());
if (clientText.startsWith(":RESET"))
**//at this point I need to send error message to all pending requests.**
Socket sock = accept();
}
}
}
}
我需要挂起的请求数或accept
的非阻塞变量
# 1 楼答案
可以使用ServerSocketChannel进行非阻塞套接字。调用configureBlocking(false)进行非阻塞。有很多很好的教程(带有示例代码),比如The Rox Java NIO Tutorial