一、TCP协议
(1)协议概述
TCP:既传输控制协议,是一种面向连接的,可靠的,基于字节流的传输层通信协议,TCP旨在适应支持多网络应用的分层结构,连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。
(2)工作方式
三次握手:(建立连接)三次握手完成TCP客户端和服务端成功建立连接,可以传输数据;
- 客户端发送SYN( SEQ=X )报文给服务器端,进入SYN_SEND状态。
- 服务器端收到SYN报文,回应一个SYN( SEQ=Y ) ACK ( ACK = x+1 ) 报文,进入SYN_RECV 状态。
- 客户端收到服务器端的SYN报文,回应一个 ACK ( ACK = y+1 ) 报文,进入Established 状态。
四次挥手:(终止连接)
- 某个应用进程首先调用 close ,称该端执行“主动关闭”,该端的TCP于是发送一个FIN分节,表示数据发送完毕。
- 接受这个FIN的对端执行“被动关闭”,这个FIN由TCP确认。
- 一段时间后,接收到这个文件结束符的应用进程将调用 close 关闭它的套接字,这导致它的 TCP 也发送一个FIN。
- 接收这个最终FIN的原发送端 TCP (即主动关闭的那一端)确认这个FIN。
(3)代码实现
客户端代码:
package socket;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Tcpclient {
//TCP 客户端
public static void main(String[] args) throws UnknownHostException, IOException {
System.out.println("TCP客户端启动");
Socket socket = new Socket("192.168.1.108",8080);
OutputStream outputStream = socket.getOutputStream();
outputStream.write("今天天气真好"<