android java.net.SocketException: Connection reset by peer
来源:互联网 发布:linux iostat命令详解 编辑:程序博客网 时间:2024/05/22 10:47
写了个android上测试socket的例子:
server侧:
class ServerThread extends Thread {/** * TCP. */@Overridepublic void run() {ServerSocket serSocket = null;try {serSocket = new ServerSocket(4567);// wait until accept request from client !System.out.println("== before ServerSocket.accept(TCP) ==");Socket socket = serSocket.accept();InputStream is = socket.getInputStream();byte[] bytes = new byte[1024];int temp = 0;while ((temp = is.read(bytes)) != -1) {System.out.println(new String(bytes, 0, temp));}} catch (IOException e) {e.printStackTrace();} finally {try {serSocket.close();} catch (IOException e) {e.printStackTrace();}System.out.println("== after ServerSocket.accept(TCP) ==");}}}
client侧:
@Testpublic void startClientSocket() {Socket socket = null;InputStream is = null;try {// get socket objectsocket = new Socket("192.168.1.102", 4567);// get outputStreamOutputStream os = socket.getOutputStream();is = new FileInputStream("C:/test.txt");byte[] bytes = new byte[1024];int temp = 0;while ((temp = is.read(bytes)) != -1) {os.write(bytes, 0, temp);}os.flush();is.close();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
运行后发现logcat中有SocketException:
10-03 17:19:16.225: W/System.err(16398): java.net.SocketException: Connection reset by peer10-03 17:19:16.264: W/System.err(16398): at org.apache.harmony.luni.platform.OSNetworkSystem.read(Native Method)10-03 17:19:16.264: W/System.err(16398): at dalvik.system.BlockGuard$WrappedNetworkSystem.read(BlockGuard.java:273)10-03 17:19:16.264: W/System.err(16398): at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:458)10-03 17:19:16.264: W/System.err(16398): at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:85)10-03 17:19:16.264: W/System.err(16398): at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:65)10-03 17:19:16.272: W/System.err(16398): at com.example.androidstudy.socket.ServerThread.run(SocketActivity.java:54)
上网查了些资料,发现原因如下:
java.net.SocketException: (Connection reset或者Connect reset by peer:Socket write error)。
该异常在客户端和服务器端均有可能发生,引起该异常的原因有两个,第一个就是如果一端的Socket被关闭(或主动关闭或者因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。另一个是一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。请参照:http://developer.51cto.com/art/201003/189724.htm
client侧的socket使用后没有关闭,所以在client侧的测试代码后面追加了finally,异常就不再发生了。
...... finally {try {socket.close();} catch (IOException e) {e.printStackTrace();}}
- android java.net.SocketException: Connection reset by peer
- java.net.SocketException: Connection reset by peer: socket write error
- java.net.SocketException: Connection reset by peer: socket write error
- 异常:ClientAbortException: java.net.SocketException: Connection reset by peer: socket
- java.net.SocketException: Connection reset by peer: socket write error
- ClientAbortException: java.net.SocketException: Connection reset by peer
- java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
- java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
- java.net.SocketException:connection reset by peer:socket write error
- java.net.SocketException: Connection reset by peer: socket write error
- java.net.SocketException: Connection reset by peer: socket
- Android网络请求报错:java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
- SocketException: Connection Reset by peer
- 棘手问题java.net.SocketException: Connection reset by peer: socket write error未解决
- ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
- java.net.SocketException: Connection reset by peer: socket write error 错误
- "ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error"异常出现的原因
- Exception Processing ErrorPage[errorCode=404 ClientAbortException: java.net.SocketException: Connection reset by peer: socket w
- STL迭代器简介
- HDOJ 4355 —— 三分
- 程序员的emacs配置大全(cedet+ecb+cscope+gdb-ui)-jzj
- HOOK钩子详细介绍
- java 层生成文件如csv,在excel中打开乱码
- android java.net.SocketException: Connection reset by peer
- C/C++中const关键字详解
- 二叉树
- 对称排序(稳定排序问题)
- 动态输入日期与时间
- 基于STM32F103的悬挂运动控制系统项目总结
- POJ 3321 - Apple Tree DFS出时间搓,树状数组统计维护..
- hdu 4455 Substrings 预处理+递推
- JavaIO之标准输入输出(二)