我有一个简单的 Java 回声服务器: int portNumber = 4444; try ( ServerSocket serverSocket = new ServerSocket(Integer.parseInt(args[0])); Socket clientSocket = serverSocket.accept(); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream())); ) { String inputLine; while ((inputLine = in.readLine()) != null) { out.println(inputLine); System.out.println(inputLine); } } catch (IOException e) { System.out.println("Exception caught when trying to listen on port " + portNumber + " or listening for a connection"); System.out.println(e.getMessage()); }和一个简单的 golang 客户端:func main() { fmt.Println("start client") conn, err := net.Dial("tcp", "localhost:4444") if err != nil { log.Fatal("Connection error", err) } conn.Write([]byte("hello world")) conn.Close() fmt.Println("done")}当我启动服务器然后运行客户端时,服务器按预期回显“hello world”,但随后服务器退出/终止。问:如何防止此 Java 终止并强制服务器持续等待更多客户端请求?
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
当客户端终止时,readLine服务器端将导致流结束。因此,如果您希望服务器持续侦听新连接,只需将上述服务器代码置于无限循环中即可。
例如
while (true) {
// above code
}
对于一个播放应用程序来说就足够了。
- 1 回答
- 0 关注
- 210 浏览
添加回答
举报
0/150
提交
取消