gpt4 book ai didi

java - 如何注意到客户端与服务器断开连接 - JAVA

转载 作者:可可西里 更新时间:2023-11-01 02:46:24 25 4
gpt4 key购买 nike

<分区>

我知道过去有过类似的问题,我研究了其中的大部分问题,但无法让我的代码正常工作。

我有一个用 Java 编写的 TCPIP 服务器和一个客户端 Android 应用程序。

当我关闭手机上的 WLAN 时,我显然没有连接到我的服务器,但服务器没有注意到这一点。

我如何在服务器上阅读

try {
bufferSender = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

//this while it's like a listener for messages
String message = null;
while (running) {
try {
message = in.readLine();
if (message == null)
System.out.println(this.user.getUsername() + " left the room.");
} catch (IOException e) {
System.out.println("Error reading message: " + e.getMessage());
running = false;
managerDelegate.userDisconnected(this);
}

if (message != null && managerDelegate != null) {
user.setMessage(message);
System.out.println("message:" + message);

// notify message received action
managerDelegate.messageReceived(user);
}
}

} catch (Exception e) {
System.out.println("S: Error");
e.printStackTrace();
}

我读到在尝试读取来自客户端的消息时应该会出错。但我没有收到任何错误。

所以我尝试每隔 X 秒从服务器向客户端发送一条消息。这是我发送它的方式:

public void sendMessage(String message) {
if (bufferSender != null && !bufferSender.checkError()) {
bufferSender.println(message);
bufferSender.flush();
} else {
System.out.println("ERROR");
}
}

但同样,没有任何反应。即使客户端没有连接到互联网,我也不会通过向客户端发送消息而收到任何错误。

我做错了什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com