我创建了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
的非阻塞变体?
最佳答案
您可以使用 ServerSocketChannel 进行非阻塞套接字。调用configureBlocking(false)做到非阻塞。有很多很好的教程(带有示例代码),例如 The Rox Java NIO Tutorial .
关于java - 如何在 ServerSocket 中不阻塞地获取待处理请求数或接受请求数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609411/