当前位置: 技术问答>java相关
用一个ServerSocket监听,为什么过一段时间就会出exception?
来源: 互联网 发布时间:2015-08-07
本文导语: java.io.StreamCorruptedException: InputStream does not contain a serialized object 源程序如下: ServerSocket server = new ServerSocket(1978); System.out.println("Server listen on: "+server.getLocalPort()); while (true) { ...
java.io.StreamCorruptedException: InputStream does not contain a serialized object
源程序如下:
ServerSocket server = new ServerSocket(1978);
System.out.println("Server listen on: "+server.getLocalPort());
while (true) {
client = server.accept();
ObjectInputStream is=new ObjectInputStream(new BufferedInputStream(client.getInputStream()));
ch = is.readChar();
filename = "";
while (ch!='n') {
filename = filename + ch;
ch = is.readChar();
}
System.out.println(filename);
inputobj=is.readObject();
......
} catch (Exception e) {
System.out.println(e.toString());
}
client发送端是这样:
Socket clientsend=new Socket(getDocumentBase().getHost(), 1978);
ObjectOutputStream os=new ObjectOutputStream(clientsend.getOutputStream());
os.writeChars(Edit1.getText()+"n");
os.writeObject(dest);
运行时没有问题,一切正常,就是过一段时间(一天多),server端就会冒出一个exception,java.io.StreamCorruptedException: InputStream does not contain a serialized object
这是为什么?
源程序如下:
ServerSocket server = new ServerSocket(1978);
System.out.println("Server listen on: "+server.getLocalPort());
while (true) {
client = server.accept();
ObjectInputStream is=new ObjectInputStream(new BufferedInputStream(client.getInputStream()));
ch = is.readChar();
filename = "";
while (ch!='n') {
filename = filename + ch;
ch = is.readChar();
}
System.out.println(filename);
inputobj=is.readObject();
......
} catch (Exception e) {
System.out.println(e.toString());
}
client发送端是这样:
Socket clientsend=new Socket(getDocumentBase().getHost(), 1978);
ObjectOutputStream os=new ObjectOutputStream(clientsend.getOutputStream());
os.writeChars(Edit1.getText()+"n");
os.writeObject(dest);
运行时没有问题,一切正常,就是过一段时间(一天多),server端就会冒出一个exception,java.io.StreamCorruptedException: InputStream does not contain a serialized object
这是为什么?
|
无非就是catch一下。如果测试有问题,可以根据catch到的exception,决定停止,还是继续循环。
关键是要搞清这个错误是不是恶性的。
关键是要搞清这个错误是不是恶性的。
|
catch exception后不要break就会继续循环了
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。