gpt4 book ai didi

java - 检测连接是否失败 - Java Android

转载 作者:行者123 更新时间:2023-12-01 14:25:51 24 4
gpt4 key购买 nike

如何检查服务器是否在线或离线,如果离线则开始连接直到服务器打开。我已经尝试过这个:

        connectBtn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

new Thread(rConnection).start();

}
});

public Runnable rConnection = new Runnable() {

@Override
public void run() {
boolean status = connect();
while (!status)
{
System.out.println("Connection Status: " + status);
status = Connect();
}
}
};

public boolean Connect() {

boolean status = false;

try {
s = new Socket(SERVER_ADDRESS, TCP_SERVER_PORT);

System.out.println("Socket: " + s.toString());

if (s.toString() != "")
{
status = true;
}
} catch (UnknownHostException e) {
e.printStackTrace();
status = false;
s=null;
} catch (IOException e) {
e.printStackTrace();
status = false;
s=null;
} catch (NullPointerException e)
{
e.printStackTrace();
status = false;
s=null;
}

return status;
}

如果服务器在启动应用程序之前正在运行,它会成功连接,但如果服务器关闭或在一段时间后断开连接,我不会收到任何错误消息,并且不会再次开始重新连接。怎么解决这个问题?

最佳答案

基本上你可以分割这个:

s = new Socket(SERVER_ADDRESS, TCP_SERVER_PORT);

进入

s = new Socket();
s.connect(remoteAddr,timeout)

然后控制连接是否在超时或成功连接时返回。

关于java - 检测连接是否失败 - Java Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17187531/

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