A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. //创建客户端
  2. class  TcpSocketDemo
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 //创建Socket服务 并指定地址和端口
  7.                 Socket sok=new Socket("192.168.1.106",8888);
  8.                
  9.                 //建立键盘录入高效操作流
  10.                 BufferedReader bufr=
  11.                         new BufferedReader(new InputStreamReader(System.in));

  12.                 //获取Socket服务的输入流对象,并装饰 用于高效操作数据
  13.                 BufferedReader bufIn=
  14.                         new BufferedReader(new InputStreamReader(sok.getInputStream()));

  15.                 //获取Socket服务的输出流对象,并装饰
  16.                 BufferedWriter bufOut=
  17.                         new BufferedWriter(new OutputStreamWriter(sok.getOutputStream()));

  18.                 String line=null;
  19.                 //遍历 将数据存储进临时缓冲区line中 将获取到的数据不等于null作为判断条件
  20.                 while((line=bufr.readLine())!=null)
  21.                 {
  22.                         //将数据发送到服务端
  23.                         bufOut.write(line);
  24.                         bufOut.newLine();//获取一行数据的回车键

  25.                         //数据在缓冲区中 所以要刷新
  26.                         bufOut.flush();

  27.                         //作为结束的标记
  28.                         if("voer".equals(line))
  29.                                 break;
  30.                         //将服务端返回的反转数据接收 并进行打印
  31.                         String str=bufIn.readLine();
  32.                         System.out.println("服务端的数据="+str);
  33.                        
  34.                 }
  35.                 //关闭资源
  36.                 bufr.close();
  37.                 sok.close();
  38.         }
  39. }

  40. //建立服务端
  41. class  TcpServerDemo
  42. {
  43.         public static void main(String[] args) throws Exception
  44.         {
  45.                 //建立服务端的ServerSocket服务  并监听一个端口
  46.                 ServerSocket ss=new ServerSocket(8888);
  47.                
  48.                 //获取客户端的Socket
  49.                 Socket s=ss.accept();

  50.                 //获取客户端的输入流 并进行装饰
  51.                 BufferedReader bufIn=
  52.                         new BufferedReader(new InputStreamReader(s.getInputStream()));
  53.                
  54.                 //获取客户端的输出流 并进行装饰
  55.                 BufferedWriter bufOut=
  56.                         new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

  57.                 //建立一个反转数据的容器
  58.                 StringBuilder sb=new StringBuilder();
  59.                
  60.                 String line=null;
  61.                 //接收客户端的数据 进行临时存储
  62.                 while((line=bufIn.readLine())!=null)
  63.                 {
  64.                         if("over".equals(line))
  65.                                 break;
  66.                        
  67.                         //将从客户端接收的数据 存储进反转数据的容器
  68.                         //再调用容器中的reverse方法将数据反转
  69.                         sb.append(line);
  70.                         sb.reverse();

  71.                         //将反转后的数据返回给客户端
  72.                         bufOut.write(sb.toString());
  73.                         bufOut.newLine();
  74.                         bufOut.flush();

  75.                         //将容器操作后的数据清空
  76.                         sb.delete(0,sb.length());
  77.                 }
  78.                 s.close();
  79.                 ss.close();
  80.         }
  81. }
复制代码

2 个回复

倒序浏览
做题的时候可以随便抛  等到做项目的时候能处理就处理  处理不了在抛
回复 使用道具 举报
当然是try,要有这种意识。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马