[英]Java android client socket not getting response until after socket disconnect
[英]Android,Java,socket, determine remote host disconnect
我正在尝试在android java中编码TCP客户端。 大多数都能正常工作。 但是我有一个问题。 如果已连接套接字,并且风味果主机关闭或网络中断或其他原因,则socket.getinputstream会继续阻塞。
我不知道套接字是否仍然连接。 我也在Objective-C和Objective-C中进行编码,但我遇到了套接字被强制关闭的事件,我可以尝试重新连接。 因此,在目标c上,套接字跟踪状态。
在Java中,即使套接字已关闭,套接字和inputstream仍被连接或阻塞。 我如何检查插座是否仍然连接?
@Override
protected Void doInBackground(String... params) {
try {
String host = params[0];
int port = Integer.parseInt(params[1]);
SocketAddress sockaddr = new InetSocketAddress(host, port);
Socket socket = new Socket();
socket.connect(sockaddr,5000);
socket.setSoTimeout(7000);
out = new PrintWriter(socket.getOutputStream(), true);
mBufferIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (mRun) {
try {
-----> mServerMessage = mBufferIn.readLine();
}catch (Exception e){
Log.d("my","hier3" + e.getMessage());
}
if (mServerMessage.trim() != null) {
sender.messageReceived(s2);
}else{
}
}
}
} catch (UnknownHostException e
) {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.