

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();}}}
