TCP协议回顾:
- TCP是一种 面向连接 , 安全 、可靠 的传输数据的协议
- 传输前,采用 "三次握手" 方式,点对点通信 ,是可靠的
- 在连接中可进行大数据量的传输
编写 客户端 代码
package com.csdn.d5_socket1;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
/**
* 目标:完成 Socket 网络编程入门案例的 客户端开发,实现 1 发 1 收
*/
public class ClientDemo1 {
public static void main(String[] args) {
try{
System.out.println("===客户端启动===");
//1、创建Socket通信管道请求有服务端的连接
Socket socket = new Socket("127.0.0.1", 7777);
//2、从socket通信管道中得到一个字节输出流 负责发送数据
OutputStream os = socket.getOutputStream();
//3、把低级的字节流包装成打印流
PrintStream ps = new PrintStream(os);
//4、发送消息
ps.println("我是TCP的客户端,我已经与你对接,并发出邀请;约吗?");
ps.flush();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
编写 服务端 代码、原理分析
package com.csdn.d5_socket1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 目标:开发 Socket 网络编程入门代码的 服务端 ,实现接收消息
*/
public class ServerDemo2 {
public static void main(String[] args) {
try {
System.out.println("===服务端启动成功===");
//1、注册端口
ServerSocket serverSocket = new ServerSocket(7777);
//2、必须调用accept方法:等待接收客户端的Socket连接请求,建立Socket通信管道
Socket socket = serverSocket.accept();
//3、从socket通信管道中得到一个字节输入流
InputStream is = socket.getInputStream();
//4、把字节输入流包装成缓冲字符输入流进行消息的接收
BufferedReader br = new BufferedReader(new InputStreamReader(is));
//5、按照行读取消息
String msg;
if ((msg = br.readLine()) != null) {
System.out.println(socket.getRemoteSocketAddress() + "说了:" + msg);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}