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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xingzjx 中级黑马   /  2015-3-12 15:30  /  648 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

分享一个基础测试题
题目:使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

客户端代码:
  1. public class Test10 {// 客户端程序

  2.         /**
  3.          * 注:该程序目前只能输入数字才能完成反转
  4.          */
  5.         public static void main(String[] args) {
  6.                 // 第一步:创建一个Socket对象
  7.                 Socket s=null;
  8.                 try {
  9.                         s = new Socket(InetAddress.getLocalHost(), 44322);
  10.                         while (true) {
  11.                                 // 第二步: 从控制台中获取一个字符串
  12.                                  Scanner sc=new Scanner(System.in);
  13.                      System.out.println("请输入一个字符串:");
  14.                      String str=sc.nextLine();
  15.                      // 第三步:向服务端发送数据
  16.                      System.out.println("向服务端发送数据中");
  17.                      PrintStream printStream=new PrintStream(s.getOutputStream());
  18.                      printStream.println(str);
  19.                      // 第四步:向服务器接受数据
  20.                      BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(s.getInputStream()));
  21.                      System.out.println("接受服务器的字符串");
  22.                      System.out.println(bufferedReader.readLine());   
  23.                      sc.close();
  24.                         }
  25.                 } catch (Exception e) {
  26.                         e.printStackTrace();
  27.                 } finally {
  28.                          if(s!=null){
  29.                         try {
  30.                                 s.close();
  31.                         } catch (IOException e) {
  32.                                 e.printStackTrace();
  33.                         }
  34.                         }
  35.                 }
  36.         
  37.         }
  38. }
复制代码
服务端代码
  1. public class TCPServer {// 服务端

  2.         public static void main(String[] args) {
  3.                 // 第一步监听客户端
  4.                 Socket s = null;
  5.                 try {
  6.                         while (true) {
  7.                                 ServerSocket serverSocket = new ServerSocket(44322);
  8.                                 s = serverSocket.accept();
  9.                                 BufferedReader reader = new BufferedReader(
  10.                                                 new InputStreamReader(s.getInputStream()));
  11.                                 String str = reader.readLine();
  12.                                 // 第二步:接收客户端的数据
  13.                                 System.out.println("服务端接收数据");
  14.                                 Thread.sleep(5000);
  15.                                 PrintStream printStream = new PrintStream(s.getOutputStream());
  16.                                 // 第三步:将字符串反转
  17.                                 System.out.println("服务端将字符串反转后发送给客户端");
  18.                                 printStream.println(new StringBuffer(str).reverse());
  19.                         }
  20.                 } catch (Exception e) {
  21.                         e.printStackTrace();
  22.                 } finally {
  23.             if(s!=null){
  24.             try{
  25.                 s.close();
  26.             }
  27.             catch(Exception e)
  28.             {
  29.                 e.printStackTrace();
  30.             }
  31.         }
  32. }
  33.         }

  34. }
复制代码




0 个回复

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