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

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


  1. /*
  2. 1,tcp分客户端和服务端。
  3. 2,客户端对应的对象是Socket。
  4.         服务端对应的对象是ServerSocket。


  5. */


  6. /*
  7. 客户端,
  8. 通过查阅socket对象,发现在该对象建立时,就可以去连接指定主机。
  9. 因为tcp是面向连接的。所以在建立socket服务时,
  10. 就要有服务端存在,并连接成功。形成通路后,在该通道进行数据的传输。


  11. 需求:给服务端发送给一个文本数据。

  12. 步骤:
  13. 1,创建Socket服务。并指定要连接的主机和端口。

  14. */
  15. import java.io.*;
  16. import java.net.*;
  17. class  TcpClient
  18. {
  19.         public static void main(String[] args) throws Exception
  20.         {
  21.                 //创建客户端的socket服务。指定目的主机和端口
  22.                 Socket s = new Socket("192.168.1.254",10003);
  23.                
  24.                 //为了发送数据,应该获取socket流中的输出流。
  25.                 OutputStream out = s.getOutputStream();

  26.                 out.write("tcp ge men lai le ".getBytes());


  27.                 s.close();
  28.         }
  29. }


  30. /*
  31. 需求:定义端点接收数据并打印在控制台上。

  32. 服务端:
  33. 1,建立服务端的socket服务。ServerSocket();
  34.         并监听一个端口。
  35. 2,获取连接过来的客户端对象。
  36.         通过ServerSokcet的 accept方法。没有连接就会等,所以这个方法阻塞式的。
  37. 3,客户端如果发过来数据,那么服务端要使用对应的客户端对象,并获取到该客户端对象的读取流来读取发过来的数据。
  38.         并打印在控制台。

  39. 4,关闭服务端。(可选)


  40. */
  41. class  TcpServer
  42. {
  43.         public static void main(String[] args) throws Exception
  44.         {
  45.                 //建立服务端socket服务。并监听一个端口。
  46.                 ServerSocket ss = new ServerSocket(10003);

  47.                 //通过accept方法获取连接过来的客户端对象。
  48.                 while(true)
  49.                 {
  50.                 Socket s = ss.accept();

  51.                 String ip = s.getInetAddress().getHostAddress();
  52.                 System.out.println(ip+".....connected");

  53.                 //获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据。
  54.                 InputStream in = s.getInputStream();
  55.                
  56.                 byte[] buf = new byte[1024];
  57.                 int len = in.read(buf);

  58.                 System.out.println(new String(buf,0,len));

  59.                 s.close();//关闭客户端.
  60.                 }
  61.                 //ss.close();
  62.         }
  63. }
复制代码

0 个回复

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