连接发生变化时套接字不会断开连接

Al.*_*Al. 8 java sockets android exception

我的聊天应用程序连接到服务器,用户发送/接收信息.当连接改变时,例如3g-> wifi,wifi-> 3g,丢失数据连接等,套接字有时会在断开连接之前保持连接数年.在此期间,无法判断连接是否仍处于活动状态,似乎消息发送得很好.其他时候,在发送消息时,它会抛出IO错误并断开连接.

除了实现代码来检测连接更改并正确地重新连接之外,是否可以让套接字在连接发生变化时立即抛出IO异常?

编辑:我正在使用以下代码进行连接:

Socket sock = new Socket();
sock.connect(new InetSocketAddress(getAddress(), getPort())), getTimeout());
//get bufferedReader and read until BufferedReader#readLine() returns null
Run Code Online (Sandbox Code Playgroud)

我没有使用setSoTimeout,因为根据远程服务器的配置,数据可能无法长时间传输.

Mir*_* N. 1

您是在谈论java.net.Socket连接吗?然后尝试setSoTimeout()。否则请指定您的连接方式。