添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
逃跑的槟榔  ·  在PySpark SQL中解析JSON·  6 月前    · 
千杯不醉的仙人球  ·  webpack ...·  1 年前    · 
纯真的水煮鱼  ·  koin - ...·  1 年前    · 

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) 作者您好: 在一些时候我们程序中的数据类型会转化成科学计数法,我们想要它原本的样子,可以尝试使用下面的代码: System.out.println(new BigDecimal("999999999999999999999").toPlainString()); 来恢复数字原本的样子; idea中修改svn账号密码方法 薄荷味脑花: 抱歉啊,之前没看到消息,你检查看是不是账号密码不对。或者是svn的地址没有给访问权限导致访问不到,你可以安装个svn的小乌龟测试一哈 idea中修改svn账号密码方法 黑衣待星辉: 操作完之后连不上原来的svn地址了,这怎么回事?