黑马程序员技术交流社区

标题: 关于通过TCP在客户端和服务端传递数据的一个小练习,分... [打印本页]

作者: nanfp    时间: 2015-7-6 17:53
标题: 关于通过TCP在客户端和服务端传递数据的一个小练习,分...
  1. package classmate;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.io.OutputStreamWriter;
  7. import java.net.*;
  8. /*
  9. 要求:
  10.    客户端通过键盘输入向服务端发送一条数据(字符串),
  11. 服务端接收数据,并将字符串转化成大写字母返回给客户端,
  12. 客户端打印转化后的字符串
  13. */
  14. public class Client {

  15.         public static void main(String[] args) throws IOException {
  16.        
  17.                 // 建立客户端Socket服务
  18.                 Socket s = new Socket("192.168.1.117",10023);
  19.                 // 读取键盘数据
  20.                 BufferedReader bufr =
  21.                                 new BufferedReader(new InputStreamReader(System.in));
  22.                
  23.                 try {
  24.                         //定义目的,将数据写入到Socket服务中,发给服务端
  25.                         BufferedWriter bufw=
  26.                                         new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
  27.                         //获取从服务端读来的数据流
  28.                         BufferedReader buIn=
  29.                                         new BufferedReader(new InputStreamReader(s.getInputStream()));
  30.                         String line;
  31.                         while((line=bufr.readLine())!=null){
  32.                                 //将数据写入服务端
  33.                                 bufw.write(line);
  34.                                 //readLine()读取的一行不包括换行符,所以要写入一个换行符
  35.                                 bufw.newLine();
  36.                                 bufw.flush();
  37.                                 if("over".equals(line))
  38.                                         break;
  39.                                 //读取服务端的数据
  40.                                 String len = buIn.readLine();
  41.                                 System.out.println(len);
  42.                         }
  43.                 } catch (IOException e) {
  44.                         // TODO Auto-generated catch block
  45.                         e.printStackTrace();
  46.                 }
  47.                 bufr.close();
  48.                 s.close();
  49.                
  50.         }
  51.        
  52. }

  53. class Servler{
  54.         public static void main(String[] args) throws IOException {
  55.                
  56.                 ServerSocket ss=new ServerSocket(10023);
  57.                 Socket a = ss.accept();
  58.                 //读取客户端的数据
  59.                 BufferedReader bufr=
  60.                                 new BufferedReader(new InputStreamReader(a.getInputStream()));
  61.                 //将数据写入到Socket流中,并发给客户端
  62.                 BufferedWriter bufw=
  63.                                 new BufferedWriter(new OutputStreamWriter(a.getOutputStream()));
  64.                 String line=null;
  65.                 while((line=bufr.readLine())!=null){
  66.                         System.out.println("服务端:"+line);
  67.                         bufw.write(line.toUpperCase());
  68.                         bufw.newLine();
  69.                         bufw.flush();
  70.                 }
  71.                 a.close();
  72.                 ss.close();
  73.                
  74.                
  75.         }
  76. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2