Socket客户端和服务端互相访问为什么会出现这样的错误 财富值78

2016-10-28 22:53发布

1,Socket客户端和服务端互相访问,客户端刚发一个信息,服务器直接中断。
import java.net.*;
import java.io.*;
/*
需求:建立一个文本转换服务器。
客户端给服务器端发送文本,服务端会将文本转成大写再返回给客户端。
而且客户端可以不断的进行文本转换。当客户端输入over时,转换结束。
*/
class TransClient {

public static void main(String[] args)throws Exception {   Socket s=new Socket("127.0.0.1",10006);   //定义读取键盘数据的流对象     BufferedReader buffr=           new BufferedReader(new InputStreamReader(System.in));   //定义目的,将数据写入到Socket输出流。发给服务端。   BufferedWriter buffout=           new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));   //定义一个socket读取流,读取服务端返回的大写信息   BufferedReader bufin=    new BufferedReader(new InputStreamReader(s.getInputStream()));      String line=null;   while((line=buffr.readLine())!=null)   {       if(line.equals("over"))           break;       buffout.write(line);//line写出的数据没有回车符       buffout.newLine();//需要newLine       buffout.flush();//刷新后输出流才有数据              String str=bufin.readLine();       System.out.println("Server:"+str);          }   buffr.close();   s.close(); } 

}

class TransServer {

public static void main(String[] args)throws Exception {   //接受客户端发来的数据   ServerSocket ss=new ServerSocket(10006);   Socket s=ss.accept();   String ip=s.getInetAddress().getHostAddress();   System.out.println(ip+"connected");      //读取Socket读取流中的数据   BufferedReader buffin=           new BufferedReader(new InputStreamReader(s.getInputStream()));   //目的,socket输出流。将大写数据写入到Socket输出流,并发送给客户端。   BufferedWriter buffout=           new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));      String line=null;     while((line=buffin.readLine())!=null)//readline会判断有没有回车符,没有回车符会继续等待读。   {       System.out.println(line);       buffout.write(line.toUpperCase());       buffout.newLine();       buffout.flush();   }   s.close();   ss.close(); } 

}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答

你的server socket就accept一次,就能通信一次啊

一周热门 更多>