image.png
    image.png
    Tcp通信,打通通信管道(socket),剩下的都是IO流(输入输出)
    image.png
    image.png
    image.png

    1. package com.itheima.d5_socket1;
    2. import java.io.IOException;
    3. import java.io.OutputStream;
    4. import java.io.PrintStream;
    5. import java.net.Socket;
    6. /**
    7. * 目标: 完成Socket网络编程入门案例的客户端开发,实现一发一收
    8. */
    9. public class ClientDemo1 {
    10. public static void main(String[] args) {
    11. try {
    12. // 1. 创建Socket通信管道请求有服务端的连接
    13. // public Socket(String host, int port) 调用其有参构造器,
    14. // host是服务端的ip地址,port是服务端的地址(要和服务端接通管道)
    15. Socket socket = new Socket("127.0.0.1",7777); // 这里用本机当作服务端
    16. // 2. 从socket通信管道中得到一个字节输出流(写数据,用最高的打印流),负责发送数据
    17. OutputStream os = socket.getOutputStream(); // os是一个输出流对象
    18. // 3. 把低级的字节流包装成打印流
    19. PrintStream ps = new PrintStream(os); // 包装成打印流,打回给os,os是socket(连接的管道的对象)衔接的管道 输出流 // 然后
    20. // 通过socket发送给服务端
    21. // 4. 发送消息
    22. ps.print("我是TCP的客户端,我已经与你对接,并发出邀请:约吗?");
    23. ps.flush(); // 发送消息要刷新数据
    24. // 关闭资源(不建议直接关闭资源,TCP可以一直建立连接, 可以让用户离线自动关闭)
    25. // socket.close();
    26. } catch ( Exception e) {
    27. e.printStackTrace();
    28. }
    29. }
    30. }