java - Socket客户端和服务端互相访问为什么会出现这样的错误
巴扎黑
巴扎黑 2017-04-18 10:15:44
[Java讨论组]

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();
}

}

巴扎黑
巴扎黑

全部回复(2)
Sherry

我现在在写这个程序,在客户端那发送信息也遇到了相同的问题,请问要怎么处理呀

伊谢尔伦

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号