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