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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenguoyu520 中级黑马   /  2015-10-6 21:19  /  268 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Echo程序是一个网络编程通信交互的一个经典示例,称为回应程序。即客户端输入哪些内容,服务端会在这些内容前加上“ECHO:”并将信息发回给客户端,下面便是这个程序。
  1. /*
  2. Tcp传输经典示例:ECHO程序
  3. */

  4. import java.net.*;
  5. import java.io.*;

  6. class EchoServer
  7. {
  8.         public static void main(String[] args) throws Exception
  9.         {
  10.                 ServerSocket ss = null;//定义ServerSocket对象
  11.                 Socket s = null;//定义Socket对象,表示客户端
  12.                 PrintStream out = null;//定义输出流
  13.                 BufferedReader bufr = null;//用于接受客户端发来的消息
  14.                 ss = new ServerSocket(8888);
  15.                 while(true)
  16.                 {
  17.                         System.out.println("服务器运行,等待客户端连接");
  18.                         s = ss.accept();//接受客户端连接
  19.                         bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));//得到客户端的输入信息
  20.                         out = new PrintStream(s.getOutputStream());//实例化客户端输出流
  21.                         boolean flag = true;
  22.                         while(flag)
  23.                         {
  24.                                 String str = buf.readLine();
  25.                                 if(str==null || "".equals(str))
  26.                                 {
  27.                                         flag = false;
  28.                                 }
  29.                                 else
  30.                                 {
  31.                                         if("bye".equals(str))//定义一个结束标记
  32.                                         {
  33.                                                 flag = false;
  34.                                         }else
  35.                                         {
  36.                                                 out.println("ECHO:"+str);//向客户端回显信息
  37.                                         }
  38.                                 }
  39.                         }
  40.                         out.close();//关闭输出流
  41.                         s.close();//关闭客户端
  42.                 }
  43.                 ss.close();//关闭服务器端
  44.         }
  45. }
  46. class EchoClient
  47. {
  48.         public static void main(String[] args)
  49.         {
  50.                 Socket s = null;//创建Socket对象
  51.                 s = new Socket("localhost",8888);//指定连接主机及端口
  52.                 BufferedReader bufr = null;
  53.                 PrintStream out  = null;
  54.                 BufferedReader input = null;
  55.                 input =new BufferedReader(new InputStreamReader(System.in));//从键盘接收数据
  56.                 out = new PrintStream(s.getOutputStream());//向服务器端输出信息
  57.                 bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));//接收服务端输入信息
  58.                 boolean flag = true;
  59.                 while(flag)
  60.                 {
  61.                         System.out.println("输入信息:");
  62.                         String str = input.readLine();//从键盘接受信息
  63.                         out.println(str);
  64.                         if("bye".equals(str))//定义接受标记
  65.                         {
  66.                                 flag = false;
  67.                         }else
  68.                         {
  69.                                 String echo = bufr.readLine();//接受ECHO信息
  70.                                 System.out.println(echo);
  71.                         }
  72.                 }
  73.                 s.close();//关闭Socket
  74.                 bufr.close();//关闭输入流

  75.         }
  76. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马