Socket编程报这个异常 Connection reset:

图片说明
上面是客户端代码
下面是服务器端代码,当服务器端执行Readline();就抛出Connection reset

try {
ServerSocket ss = new ServerSocket(6000);

        System.out.println("服务器已经对端口号为12002的端口进行监听");
        while (true) {
            Socket socket = ss.accept();
            System.out.println(socket.getRemoteSocketAddress() + "连接上服务器");
            if (socket.isClosed()) {
                System.out.println("连接被关闭");
            }
            System.out.println("OK");

            InputStream is = socket.getInputStream();
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(is));
            // 获得输出流
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            // 4.读取用户输入信息
            String info = null;
            info = br.readLine();
            while (!((info = br.readLine()) == null)) {
                System.out.println("我是服务器,用户信息为:" + info);
            }
            // 给客户一个响应
            String reply = "welcome";
            pw.write(reply);
            pw.flush();
            // 5.关闭资源
            pw.close();
            os.close();
            br.close();
            is.close();
            socket.close();

4个回答

这个可能是服务器没有开启或者运行,或者是防火墙拦截了,检查防火墙的设置。

qq_35857915
qq_35857915 我的防火墙是关闭的,我客户端是一个android程序,服务端是一个java程序,运行服务器可以运行,服务端接收到请求没问题,但是一旦执行到Readline();方法就抛出上面的异常。而且在服务端如果用while(true)循环接受,控制台会显示连接不停的连接,关闭
接近 4 年之前 回复

网络没连上,看看是不是有占用端口的,或者 有重复IP,防火墙问题

qq_35857915
qq_35857915 端口没有占用,防火墙也是关闭的,只要执行Readline()就抛出异常
接近 4 年之前 回复
qq_35857915
qq_35857915 我的防火墙是关闭的,我客户端是一个android程序,服务端是一个java程序,运行服务器可以运行,服务端接收到请求没问题,但是一旦执行到Readline();方法就抛出上面的异常。而且在服务端如果用while(true)循环接受,控制台会显示连接不停的连接,关闭
接近 4 年之前 回复

你的客户端在执行flush之后执行了什么?导致客户端重新连接了

tianxionj
tianxionj 回复qq_35857915: 是不是你关闭输出流太早的缘故,把哪个shutdownoutput()去掉试试
接近 4 年之前 回复
qq_35857915
qq_35857915 下面是我的全部代码,flush之后就是关闭连接。没执行什么啊
接近 4 年之前 回复

package org.example.socket;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
private Button b;
private TextView t;
private TextView tshow;

public void visit() {
    new Thread() {
        public void run() {
            try {

                Socket socket = new Socket("222.210.48.174", 6000);
                String message = t.getText().toString() + "/r/n";  
                PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);    
                  out.println(message);  
                  //接收来自服务器的消息 
                  BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));  
                  String msg = br.readLine();  
                  if ( msg != null ) 
                  { 
                    tshow.setText(msg); 
                  } 
                  else
                  { 
                    tshow.setText("数据错误!"); 
                  } 
                  out.flush();
                  //关闭流 
                  out.close(); 
                  br.close(); 
                  //关闭Socket 
                  socket.close();  

            } catch (UnknownHostException e) {
                System.out.println("ip不正确");
                e.printStackTrace();
            } catch (IOException e) {

                e.printStackTrace();
            }

        }
    }.start();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    t = (TextView) findViewById(R.id.textView1);
    b = (Button) findViewById(R.id.button1);
    tshow = (TextView) findViewById(R.id.textView2);

    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            visit();
        }

    });
}

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java Socket编程报错Connection reset by peer

Socket编程过程中,客户端向服务端发送请求,会遇到以下错误:java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer) 01-11 23:07:25.065: W/System.err(11804): java.net.SocketException: recvfrom failed: EC

网络编程之java.net.SocketException: Connection reset异常问题(一)

错误代码:客户端://3.获取输入流,用来读取服务器端的响应信息InputStream is = socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String info = null;while((info = br.readLine()) != null){//循环...

oracle常见异常——io异常,connection reset

从Oracle官网论坛里找到一个帖子,讨论的问题和我遇到的问题类似,但提出的问题原因和解决方法比较有意思。按照帖子里的说法,问题的根因和Java的安全随机数生成器的实现原理相关。 java.security.SecureRandom is a standard API provided by sun. Among various methods offered by this class ...

tomcat的Connection reset异常

请参考  1: http://blog.sina.com.cn/s/blog_43eb83b90102ds8w.html      2:http://www.cnblogs.com/qqzy168/archive/2012/09/04/2670002.html 希望这两篇文章对你有帮助

java.sql.SQLException: Io 异常: Connection reset

java.sql.SQLException: Io 异常: Connection reset当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLException: Io 异常: Connection reset” 或“java.sql.SQLExcepti

关于WEBSERVICE的Connection reset异常

项目需求是从远程WS接口获取数据,进行处理后入库,简单讲就是数据汇集,从开发环境调用WS接口一切正常,但部署到服务器上后,频繁出现java.net.SocketException: Connection reset异常,在网上查找后得到的结论如下: 导致“Connectionreset”的原因是服务器端因为某种原因关闭了Connection,而客户端依然在读写数据,此时服务器会返回复位标志“

关于客户端断开连接后服务器抛出异常Connection reset

学习了socket  ,在做一个类似qq的c/s结构的聊天软件。发现了一个问题 就是在客户端与服务器通信后,服务器为客户端开启一个线程,使用while(true)循环时刻监听是否有通信。 在界面开启时没有任何异常,可是当界面关闭 就一直抛出异常了。 开启线程代码如下: 异常内容如下: java.net.SocketException: Connection reset at

Socket异常之Connection reset

“Connection reset”的原因是服务器关闭了Connection[调用了Socket.close()方法]。大家可能有疑问了:服务器关闭了Connection为什么会返回“RST”而不是返回“FIN”标志。原因在于Socket.close()方法的语义和TCP的“FIN”标志语义不一样:发送TCP的“FIN”标志表示我不再发送数据了,而Socket.close()表示我不在发送也不接受数

java.sql.SQLException: Io exception: Connection reset

客户端发生数据到服务端,报以下错误: java.sql.SQLException: Io exception: Connection reset at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlEx

使用ServerSocket和Socket出现Connection reset的解决办法

服务器端代码: package Socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socke

java.sql.SQLException:IO异常:Connection reset...........

报错截图: 当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效。但是客户端并不知道 ,在进行数据库操作时仍然使用的是无效的数据库连接,这样就会导致客户端程序报错误。 解决方法: 在配置数据源的文件中加上下面一行代码 validationQuery" value="select * from dual" /> 配置之后,客户端在使用一个连接时会对改连接进

java 中的connection reset 异常处理分析

在Java中常看见的几个connection rest exception, Broken pipe, Connection reset,Connection reset by peer Socked reset case  Linux中会有2个常见的sock reset 情况下的错误代码 ECONNRESET           该错误被描述为“connection re

java socket报 connection reset的原因和解决方式

Java服务器使用Socket时,如果报错: Connection reset; 我遇到的一个原因是服务器端主动断开连接了,没有循环等待accept,当然常规做法是在While(true)里开启线程,为了简化看到问题,就没写线程;  即服务器端的accept必须用while (true) 把accept包围起来,否则运行完就退出了,客户端就会报connection reset     具

mina mina Connection reset by peer异常

mina 异常处理要关闭连接

FTP上传文件 SocketException: Connection reset

FTP上传文件报的异常,我基本代码如下: FTPClient client = new FTPClient(); InputStream in = new ByteArrayInputStream("IT WORKS! :D".getBytes()); try { client.connect("localhost"); client.login("user", "pass

关于JAVA httpclient connection reset的问题分析和解决

近日,在和第三方进行接口联调的时候,第三方抱怨我方提供的http服务接口经常发生connection reset的情况,导致第三方不能正常的使用我方服务接口,而我方在对该接口进行各种压力测试后,均没有重现该问题,双方开发人员都不承认是自身的问题,问题难以解决。       由于是connection reset问题,必定和网络以及代码机制有关系,因此对双方的编码机制和通讯整个路由情况进行了梳理,

eclipe连接cvs报错“套接字异常:connection reset”、"connection reset by peer"、“caused connection abort: recv fa”等

在windows2003 enterprise edition安装配置了CVS,通过eclipse连接时,始终连接不上。新建CVS资源库后,点击确定就开始报连接不上,在确认消息框中选择保存,然后再在资源库中刷新,也提示输入密码,但是确认后继续报错,错误信息有如下几种: 套接字异常:connection reset connection reset by peer 从CVS服务器接收到未知

DBCP数据库连接失效的解决方法(Io 异常:Connection reset)

网上很多评论说DBCP有很多BUG,但是都没有指明是什么BUG,只有一部分人说数据库如果因为某种原因断掉后再DBCP取道的连接都是失效的连接,而没有重新取。有的时候会报Io 异常:Connection reset。  解决方法:  spring中datasource的配置如下: 

求助:linux服务器间Socket异常问题:Connection reset

在一台服务器上有两个tomcatA、tomcatB; tomcatA上部署了项目a以专门对外提供Webservice服务; tomcatB上部署了针对 项目a 的web测试项目; 需求是:通过web测试项目对项目a提供的各种Webservice服务进行测试; 现在的问题:在web测试项目上调用Webservice服务时报错: 07-04 19:03:52 [TP-Processor255

Android通过Http协议POST请求异常(Connection reset by peer)

上周遇到了一个Connection reset by peer 网络连接问题,为此,我找遍了中英文的一些网站,搜遍了能找的每个角落,发现了出现这种状况的原理,该java异常在客户端和服务器端都有可能发生,引起该异常的原因有: Connection reset by peer的常见原因:

linux socket编程 Connection reset by peer 错误

假设Server A上面有Process X,它有一个socket M,和另外的Server B上面的Process Y的 Socket N以TCP协议连接上了,那么,据我所知,有2种情况会出现RST包: (1)X没有close socket就退出了,然后Y继续向M send数据,A的内核就会发送RST 到 socket N; (2)X设置了SO_LINGER,其中l_onoff 非0, l_

一次hibernate+c3p0+mysql连接池java.net.SocketException: Connection reset故障的解决笔记

hibernate 有自带的连接池,但大家用起来颇有微词,因为其稳定性以及性能都不太好。c3p0 连接池的性能和稳定性久经考验,所以用 hibernate 的朋友一般都使用 c3p0 的连接池。那么是不是把 c3p0 的包导进来,然后 hibernate.cfg.xml 里把 c3p0 的各种属性加进来就万事大吉了呢?不见得,很可能你的项目上线以后,发现你的连接池不仅性能低下,而且可靠性差,c3p0 并没有表现出它传说中应该具有的那些特性。你在咒骂 c3p0 的可靠性以及性能的时候,有没有想过你用的很可能还

kettle表输入总是报数据库连接不上或者connection reset

最近使用kettle工具做了一个监控项目,在使用 kettle中的表输入的时候,总是报连接数据库超时或者connection reset,报错内容概要:Error occured while trying to connect to        the database;Invalid JNDI connection Gab : IO Error: Connection reset; 我用的数

oracle jdbc Connection Reset问题

参考:https://community.oracle.com/message/3701989   http://www.tuicool.com/articles/mI3mQrv oracleJDBC在建立连接时需要一些随机数据用以加密session token之类的东西,在linux上,与之相关的是/dev/random和/dev/urandom。 先看熵池,Linux内核熵池,通过

Socket编程中的Connection reset异常

<br />产生原因:<br />      通常是当管道读端没有在读,而管道的写端继续有线程在写,就会造成管道中断。(由于管道是单向通信的) SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。<br />解决方法:<br />      写方(如客户端像服务端发送信息)在写入完毕后应关闭写入流。

http client遭遇Connection reset问题,以及解决方法

客户端使用200个线程往服务器端发送数据,每次数据量约100K. 发送的时候使用了多线程连接池管理器 private MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager(); private HttpClient httpClient =

Oracle连接错误Cannot create PoolableConnectionFactory (Io 异常: Bad packet type)

连接Oracle是遇到如题所述错误,经查阅资料,发现了解决办法,特记录如下。       Oracle连接数据库时出现错误,Cannot create PoolableConnectionFactory (Io 异常: Bad packet type),错误意思是端口号错误,解决办法:将jdbc.url=jdbc:oracle:thin:@192.168.1.103:5500:fastfood中

[转]导致java.net.SocketException: Connection reset 的原因

原博客地址:http://blog.sina.com.cn/s/blog_4b6f8d1501017tqa.html 第1个异常是java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口

JDBC Connection Reset问题分析

2014年7月13日 半年前开始,项目组测试MM在验证功能时,经常报怨讲测试环境上的应用在启动时很慢,偶尔会报失败,遇到类似问题多数情况下重新启动一次就可以启动成功,但少数时候也有反复启动不成功的案例。当启动失败时,日志里有如下的异常,看起来似乎和网络有关。 java.sql.SQLRecoverableException: I/O Exception: Connection 

是什么造成了weblogic server log文件里的java.io.exception

在你的weblogic server的log文件里面, 你有可能会看到一下Exception(Window NT)        java.io.IOException Connection Reset by Peer   java.io.IOException: ClientAbortException: java.net.SocketException: Connection reset by

TCP中使用ObjectOutputStream传输数据对象抛出**Connection reset**的异常。

特别注意: 在使用ObjectOutputStream基于TCP传输时客户端在发送完ObjectOutputStream oos = new ObjectOutputStream(ops); oos.writeObject(p);一定要记得调用oos.flush(); socket.shutdownOutput();flush()是为了刷新缓冲区,socket.

fastdfs文件上传java--根据网络io流上传-避免Connection reset by peer: socket write error

1:添加依赖 net.oschina.zcx7878 fastdfs-client-java 1.27.0.0 2:配置config.conf  里面可以只配置tracker的地址和端口 tracker_server=192.168.0.180:22122 3:编写代码 3.1编写UploadF

jdbc connect reset问题

多个相同的进程同时启动,访问数据库出现connect reset问题 解决: rm /dev/random ln -s /dev/urandom /dev/random 参见:http://blog.csdn.net/ryantotti/article/details/45499197

FtpClient连接ftp 报Connection reset by peer: socket write error异常

使用FtpClient连接ftp时候发现报Connection reset by peer: socket write error错误,但是之前一个demo连接确没有问题,最后对比了一下发现jdk版本不一样,报错项目使用了默认jdk,demo里边使用的本地安装的jdk1.6.0_10版本,把报错项目改成本地jdk之后,错误消失,不知道是不是版本太低,有时间可以了解下

Connection Reset的错误

WebLogic运行一段时间以后console会有这样的错误,更加严重的是Server会死掉。。。 ocket[addr=/127.0.0.1,port=2077,localport=6001]java.net.SocketException: Connection reset        at java.net.SocketInputStream.read(SocketInputSt

在was控制台重启工程时,zookeeper报以下错误:java.io.IOException:Connection reset by peer

一、问题描述 在was控制台更新war包后,重新启动时,报以下错误: 二、解决方案: 进入zookeeper的以下路径:zookeeper-3.4.6/conf,找到 zoo.cfg文件,如下图: 修改zoo.cfg文件,把zookeeper的最大连接数设置为200,如下图: 然后重新启动zookeeper:./zkServer.sh restart,如下图所示:

java报错:Connection reset by peer: socket write error

用java做excel导出时,报错: ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error   大致出现问题的原因如下:1、这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就

Java.net.SocketException:Connection reset

第一眼看到这个异常就顾名思义意识到是个连接的错误,然后就百度一下这个异常是什么原因引起的,简单来说呢就是在连接断开后的读和写操作引起的,再简单一点来说呢就是数据还没传送完,连接就断开了。。。一脸懵逼,无从下手。。。        那么就先来看看什么操作导致出现这个异常的吧,点开一个页面docId是370,数据返回完全正常,好吧,继续打开别的,当docId是374的时候问题来了,每次刷新返

关于错误:ORA-12592: TNS: 包错误 和 Io 异常: Connection reset by peer: socket write error

最近几天在这边做导入数据的工作,但是遇到了很多问题,还好推迟上线了,不然真的要耽误工时了(谁让专业的DBA们都不见了呢)今天周三了,今天报的错误清一色和前天的一样,而昨天的错误如下: ORA-12592: TNS: 包错误 和 Io 异常: Connection reset by peer: socket write error

Tcp异常断开之Connection reset

一、背景192.168.15.81(linux机器)机器访问192.168.0.139(linux机器)的任意端口,建立的tcp连接成功,但是连接会莫名奇妙的消失,导致Connection reset的错误。192.168.5.81的mac地址:6C:92:BF:0B:2F:9D(linux)192.168.0.139的mac地址:未知(linux)192.168.15.186的mac地址:44-...

JedisConnectionException Connection Reset

JedisConnectionException Connection Reset使用Jedis的subscribe进行消息订阅时有时会抛出JedisConnectionException:Connection Reset,查看redis-server控制台,发现有如下信息输出:subscribe scheduled to be closed ASAP for outcoming of outpu

com.microsoft.sqlserver.jdbc.SQLServerException: 使用 DBComms.receive 方法期间发生异常。

com.microsoft.sqlserver.jdbc.SQLServerException: 使用 DBComms.receive 方法期间发生异常。操作:socket closed。上下文:(377250) [Thread[http-80-Processor144,5,main], IO:65c79, Dbc:null]。PktNum:0。TotalReceived:0。PktSize:4,

Kettle连接ORACLE失败,报错IO异常:

之前用kettle从测试环境抽数据,连接的是oracle数据库,没有任何问题。今天,经理让我从生产环境抽数,于是我把之前连接的主机名称改成生产环境的地址,换一下用户名密码,其它不变(如:数据库名称)。连接时报错如下图: 感到很纳闷,用户名和密码都是正确的,测试环境可以连,怎么换个IP就失败了。 通过检查,觉得应该是错在连接ORACLE的SID上。我觉得kettle连接ORALCE应该是

rabbitmq java.net.SocketException: Connection reset

rabbitmq之发送helloworld: 后台报异常: 检查了一下,虚拟机的rabbitmq服务正常启动,admin/admin登陆后台也成功啊! 原因:因为之前安装环境时不知道为什么默认的用户名/密码:guest/guest ,然后通过下面新建的用户admin/admin,只有登陆的权限。 后台查看用户admin状态: 请教了群里的大神:是因为a

soapui测试https报connection reset的解决方案

这个问题搞了我几天,想死的心都有了!搞好了,心情也顿时舒畅了。 报这个异常,具体原因肯定有好多,记录一下我这个原因,以便给后来人提供一种参考 or 借鉴 or 思路 java.net.socketException:connection reset 报这个异常时因为客户端与服务器,有一方已经断开链接,另一方还在读。 我们服务器使用了 linux操作系统 nginx代理

eclipse里启动rabbitmq报错 java.net.SocketException: Connection reset

是因为当前用户设置 Virtual Hosts有问题,问题具体描述可以看看http://blog.csdn.net/only09080229/article/details/43304543 如何解决这个问题?只要正确设置当前用户的 Virtual Hosts并和用户绑定就行了。 例如你想添加一个/Admin 的virtual hosts 并和用户绑定。 设置办法见图: 步骤一:添加vir

java.io.IOException: Connection reset by peer

cmpp服务端主动断开客户连接问题处理: 1、问题描述: 客户端每隔30秒被服务端断开连接,报错java.io  .IOException: Connection reset by peer,导致短信提交异常,服务端连接数不断增加 2、问题分析: 查看应用程序发现连接无异常程序报错导致连接断开,查看激活测试消息发现,客户端发送激活测试消息,服务端收不到,分析可能存在激活测试消息丢失导致服

URLConnection 的陷阱 java_关于connection reset 服务器cgi

URLConnection 的陷阱 java_关于connection reset 服务器cgi   java.net.ProtocolException: Can't reset method: already connected at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:314) at

java.io.IOException: Connection reset by peer问题处理

HiveServer2支持多客户端的并发访问,使用ZooKeeper来管理Hive表的读写锁。实际环境中,遇到了HiveServer2连接ZooKeeper出现Too many connections的问题,这里是对这一问题的排查和解决过程。 问题描述 HiveServer2服务无法执行hive命令,日志中提示如下错误: 2013-03-2212:54:43,946 WARN  zo

Redis远程连接失败-“Connection reset by peer”的解决方式(Win10以及Ubuntu)

每篇一句: The business of life is the acquisition of memories. In the end that’s all there is. 问题出现: 今天在在本机(Windows 10)以及虚拟机(Ubuntu 16.04)中分别安装了Redis服务, Windows 10安装 : Redis-x64-3.2.100.msi ...

相关热词 c#树形选择 c#中类图的使用方法 c# 传参 调用exe c# 怎么定义方法 c# 修改本地时间 c#前台怎么读取资源文件 c# xml转list c#实现框选截图 m*m乘法表c# c# 乘法99表
立即提问