开发者社区> 问答> 正文

写了两个网络的java小程序 报错说connetion reset! 求教!?报错

package server;

import java.io.*;
import java.io.IOException;
import java.net.*;

class Server {
 public static void main(String[] args) {
  try {
   ServerSocket ss=new ServerSocket(8888);
   Socket s1=ss.accept();
   System.out.println("Client conneted!");
   BufferedReader br=new BufferedReader(
     new InputStreamReader(s1.getInputStream()));
   System.out.println(br.readLine());
 
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

 

 

package client;

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
 public static void main(String[] args)  {
  try {
   Socket s=new Socket("127.0.0.1",8888);
   BufferedWriter br=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
   BufferedReader br1=new BufferedReader(
     new InputStreamReader(System.in));
   String str=br1.readLine();
   br.write(str);
   
  } catch (UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

以上一个client 一个server 功能就是两者连接后从client那里输入一个字符串然后再server那里输出

但是当我在client处输入一个字符串并按回车后这样报错


java.net.SocketException: Connection reset
 at java.net.SocketInputStream.read(SocketInputStream.java:168)
 at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
 at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
 at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
 at java.io.InputStreamReader.read(InputStreamReader.java:167)
 at java.io.BufferedReader.fill(BufferedReader.java:136)
 at java.io.BufferedReader.readLine(BufferedReader.java:299)
 at java.io.BufferedReader.readLine(BufferedReader.java:362)
 at server.Server.main(Server.java:15)

中间哪里出问题了呢? 大神何在?

展开
收起
爱吃鱼的程序员 2020-06-22 19:41:03 578 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    客户端连上去发个东西就结束了等服务器读的时候连接都已经断了
    那我在客户端写个循环不断阻塞等待试一下你觉得如何?架子线程上。server 设置成while(true)循环。。client:
    while(true){
    Stringstr=<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:21.988636016845703px;background-color:#FFFFFF;">br.readLine();
    out.println(str);
    out.flush();
    if(str.equals("end")){
    break;
    }
    System.out.println(in.readLine());

    }

    server:
    while(true){
    Stringstr=in.readLine();
    System.out.println(str);
    out.println("hasreceive....");
    out.flush();
    if(str.equals("end"))
    break;
    }


    2020-06-22 19:41:21
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载