Exception in thread “main” java.net.SocketException: Connection reset
在做网络相关的东西时可能会遇到类似于这种连接错误的信息,我这里遇到了一个,以下是错误代码 问题重现,以及修复和分析
//简单的客户端
public class Center {
public static void main(String[] args) throws IOException, InterruptedException {
Socket socket=new Socket("127.0.0.1",8080);
OutputStream outputStream=socket.getOutputStream();
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(outputStream,"UTF-8");
BufferedWriter bufferedWriter=new BufferedWriter(outputStreamWriter);
bufferedWriter.write("ffffffffff");
bufferedWriter.flush();
// Thread.sleep(1000);
// bufferedWriter.close();
// outputStreamWriter.close();
// outputStream.close();
//简单的服务器端
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket=new ServerSocket(8080);
while(true){
Socket socket=serverSocket.accept();
System.out.println(";;;;;;;");
InputStream inputStream=socket.getInputStream();
System.out.println(inputStream==null);
InputStreamReader inputStreamReader=new InputStreamReader(inputStream,"UTF-8");
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
String content=null;
while((content= bufferedReader.readLine())!=null){
System.out.println(content);
先运行服务器端程序,然后运行客户端程序(注意顺序,不然客户端运行就要报找不到服务器的错!)
这是错误截图
解决办法就是我上边写的客户端代码中注释掉的几个close方法给取消注释就ok了。
分析原因:
我认为这个与tcp的连接规则有关系,他必须是连接有头有尾,大概意思是,我客户端给服务器端建立连接后,如果客户端想连接终止,必须给服务器端说一声,不然服务器端联系不上客户端,以为是出了故障,就要报错,以上边的简单的例子来说,我客户端发了这个消息后,任务就完成了,可以断开连接了,所以这里必须调用close方法,关闭相关的资源,这个时候服务端也就知道你客户端要下线了,那连接不上你客户端就是正常的,那么就可以完美运行。
这里我简单归纳一哈其他的出现这个问题的可能原因:
1.可能是服务器加载太多,崩了,比如来的消息太多,没有做缓存相关东西。
2.当前网络不稳定
3.客户端出问题了,比如浏览器崩了,重启浏览器就好
Exception in thread “main” java.net.SocketException: Connection reset在做网络相关的东西时可能会遇到类似于这种连接错误的信息,我这里遇到了一个,以下是错误代码 问题重现,以及修复和分析//简单的客户端public class Center { public static void main(String[] args) throws IOException, InterruptedException { Socket
java.io.IOException 断开的管道 解决方法 ClientAbortException: java.io.IOException: Broken pipe
今天公司技术支持的童鞋报告一个客户的服务不工作了,紧急求助,于是远程登陆上服务器排查问题。
查看采集数据的tomcat日志,习惯性的先翻到日志的最后去查看有没有异常的打印,果然发现了好几种异常信息,但是最多还是这个:
24-Nov-2016 09:54:21.116 SEVERE [http-nio-8081-Acceptor-0] org.apache.tomcat.uti...
我写的是客户端,对接远程服务端,报文能成功发送,但是报
Connection reset。
这个问题卡了我三天,总算解决了!!!
原因:就是客户端在接受服务端的响应时,没有对循环while ((info = br.readLine()) != null)读出的信息进行判断,导致无法跳出循环直至对端关闭连接,然后客户端抛异常。
必须要判断字符串已经全部取完!!
while ((info = br.readLine()) != null) {
sb.append(info + "\n");
错误信息:客户端程序不能停止,
人为停止以后打印Exception in thread "main" java.net.SocketException: Connection reset
Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at java
Connection reset : 一般是客户端正在从服务器读数据时或者向服务器写数据时,服务器连接关闭,通过tcpdump抓包可以看到,返回了一个RST复位标志,导致连接重置。
导致此异常的原因,总结下来有三种情况:
1.服务器端偶尔出现了异常,导致连接关闭
解决方法: 采用出错重试...
今天再使用Socket进行TCP通信的时候报了这个异常:
异常原因:我再完成客户端的时候,应该是输出流将信息传递给服务器端,但是再关闭的时候,使用的是输入流的关闭,导致在接收服务器端的信息时,无法正常接收
修改为就没问题了
public static void main(String[] args) throws Exception
Socket socket = new Socket("localhost",8888);
BufferedOutputStream out = new B
出现如下问题:
在连接rabbitmq的时候出现了连接超时的提示
Exception in thread "main" java.net.ConnectException: Connection timed out: no further information
at java.base/sun.nio.ch.Net.pollConnect(Native Method)
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
at java.b
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean (default-clean)
idea中修改svn账号密码方法
薄荷味脑花:
idea中修改svn账号密码方法
黑衣待星辉: