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

Just-the-CJ 发布于 2013/05/07 20:14
阅读 294
收藏 0

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)

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

加载中
0
逝水fox
逝水fox
客户端连上去 发个东西 就结束了 等服务器读的时候 连接都已经断了
Just-the-CJ
Just-the-CJ
那我在客户端写个循环 不断阻塞等待试一下 你觉得如何?
0
Ryan-瑞恩
Ryan-瑞恩
架子线程上。
0
Moy
Moy
server  设置成while(true)循环。。
0
ksfzhaohui
ksfzhaohui
client:
while (true) {
String str = br.readLine();
out.println(str);
out.flush();
if (str.equals("end")) {
break;
}
System.out.println(in.readLine());

}

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


OSCHINA
登录后可查看更多优质内容
返回顶部
顶部