# 网络编程 **Repository Path**: newbread/network ## Basic Information - **Project Name**: 网络编程 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-22 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 测试命令 netstat -apn | grep 8000 (需要root权限) TCP状态时序图: 1.主动发起连接请求端: CLOSE -- 发送SYN ---SEND_SYN --接收ACK、SYN -- 接收 ACK、SYN -- SEND_SYN --发送ACK---ESTABLISHEN(数据通信态) 2.主动关闭连接请端: ESTABLISHED(数据通信态) -- 发送FIN -- FIN_WAIT_1 --接受ACK--FIN_WAIT_2(半关闭) ---接受对端发送 FIN -- FIN_WAIT_2(半关闭)--回发ACK--TIME_WAIT(只有主动关闭连接的一方,会经历该状态) --等2MSL时长---CLOSE 3.被动接受连接请求端:CLOSE--LISTEN--接收SYN--LISTEN--发送ACK、SYN -- SEND_RCVD -- 接收ACK -- ESTABLISHEN(数据通信态) 4.被动关闭连接:ESTABLISHEN(数据通信态)--接收FIN--ESTABLISHEN(数据通信态)--发送ACK--CLOSE_WAIT(说明对端【主动关闭连接端】处于半关闭状态)--发送FIN--LAST_ACK--接收ACK--CLOSE 2MSL时长: 一定出现在【主动关闭连接请求端 】。------TIME_WAIT 保证,最后一个ACK能成功被对端接收。(等待期间,对端没收到我发的ACK,对端会再次发送FIN请求。) FIN_WAIT 2:主动关闭链接的一方,发出FIN 收到 ACK 以后进入该状态。(称之为半连接或半关闭状态。该状态下的socket 只能接收数据,不能发。) 端口复用: int opt = 1;