TCP通信分析图解
- 【服务端】启动,创建ServerSocket对象,等待连接。 Socket client = new Socket(“127.0.0.1”, 6666); ServerSocket server = new ServerSocket(6666);
- 【客户端】启动,创建Socket对象,请求连接。
- 【服务端】接收连接,调用accept方法,并返回一个Socket对象。
- 【客户端】Socket对象,获取OutputStream,向服务端写出数据。
- 【服务端】Scoket对象,获取InputStream,读取客户端发送的数据。
到此,客户端向服务端发送数据成功。
自此,服务端向客户端回写数据。
6.【服务端】Socket对象,获取OutputStream,向客户端回写数据。
7.【客户端】Scoket对象,获取InputStream,解析回写数据。
8.【客户端】释放资源,断开连接。
代码实现
客户端
public class TCPClient {
public static void main(String[] args) throws IOException {
Socket socket=new Socket("127.0.0.1",8888);
OutputStream os = socket.getOutputStream();
os.write("你好服务器".getBytes());
InputStream is = socket.getInputStream();
byte[] bytes=new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes, 0, len));
os.close();
}
}
服务器端
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket=new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
byte[] bytes=new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes,0,len));
OutputStream os = socket.getOutputStream();
os.write("收到谢谢".getBytes());
socket.close();
serverSocket.close();
}
服务器收到客户端的请求
客户端收到服务器发来的消息