java.net.SocketException: Connection reset
服务端
public static void main(String[] args) {
ConfigManager man=ConfigManager.getInstance();
List<CommandGroup> group=man.getCommandGroup();
List<Socket> socket=null;
try {
ServerSocket server=new ServerSocket(9123);
socket=new ArrayList<Socket>();
while (true) {
server.setSoTimeout(5000);
Socket sockcet= server.accept();
socket.add(sockcet);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 0; i < socket.size(); i++) {
byte[] buf=OtherUtils.toSerialize(group.get(0));
PackageFactory.write(buf, socket.get(i));
}
}
客户端
public static void main(String[] args) {
try {
Socket socket=new Socket("localhost", 9123);
System.out.println(socket.isClosed());
ObjectInputStream inputStream = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
CommandGroup group =(CommandGroup) inputStream.readObject();
System.out.println(group.getLoop());
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java.net.SocketException:Connectionreset异常产生的原因有两方面:
1,如果一端的Socket被关闭(或主动关闭,或因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connectresetbypeer)。
2,一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connectionreset)。简单的说就是在连接断开后的读和写操作引起的。
检查下你的是否存在客户端程序退出了,但是outputstream流并没有关闭呢。
以后logcat直接复制粘贴不要截图,还有要尽量改用AndroidStudio
尽量使用AndroidStudio
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。