[英]Android socket on server stopped
我正在用Android编写一个TCP客户端 ,该客户端将数据发送到Java服务器。 现在我添加验证了当服务器不可用,我就死在当服务器被杀害突然(实际上,我exitting与服务器做什么JFrame.EXIT_ON_CLOSE
既然是测试服务器)。
问题是,当我关闭服务器时,无论何时我写入OutputStream
或从InputStream
读取时,客户端都不会引发任何异常。
// This is inside a try block, catching IOException, and finally block closes all streams
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (mRun) {
String response = in.readLine();
Message message = Message.obtain();
if (response != null && message != null) {
message.obj = response;
mHandler.sendMessage(message);
}
}
另外,当我关闭服务器时,系统每秒仍记录以下日志中的10-20个,甚至更多:
dalvikvm﹕ GC_FOR_ALLOC freed 499K, 6% free 9377K/9920K, paused 13ms, total 13ms
我也有尝试写入到另一个线程Sockets
的OutputStream
使用PrintWriter
:
if(out != null && !out.checkError()) {
Log.d(TAG, "Writing to output stream...");
//...
而且它似乎继续执行,这意味着checkError()
返回false
我是Socket
编程的新手,所以对我为什么要做你告诉我做的事情的解释会很好,在此先感谢。
我通过更改以下行解决了
while (mRun) {
至
while (response = in.readLine() && socket.isConnected()) {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.