我创建了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
的非阻止变体?
答案 0 :(得分:1)
您可以使用ServerSocketChannel执行非阻塞套接字。致电configureBlocking(false)进行非阻止。有很多很好的教程(带有示例代码),如The Rox Java NIO Tutorial。