什么是TCP
传输控制协议(TCP:Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议的运行可划分为三个阶段:连接建立、数据传送和连接终止。
很多重要的机制保证了TCP的可靠性和强壮性,包括:
- 使用序号,对收到的TCP报文段进行排序以及检测重复的数据。
- 使用校验和检测报文段的错误,即无错传输。
- 使用确认和计时器来检测和纠正丢包或延时。
- 流控制。
- 拥塞控制。
- 丢失包的重传。
TCP编程

案例
TCP服务端:
python
import socket
import threading
#创建TCP/IP socket
#绑定IP地址和端口
#监听连接
#接收客户端请求
#发送数据
#关闭连接
def handle_client(client_socket,client_addr):
try:
while True:
content = client_socket.recv(1024).decode('utf-8')
if not content:
break
print(f"客户端{client_addr[0]}说:{content}")
client_socket.send(b"Hello, client!")
except Exception as e:
print(f"客户端{client_addr[0]}异常退出:{e}")
finally:
client_socket.close()
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_socket.bind(('0.0.0.0', 8080))
tcp_socket.listen(50)
#等待客户端连接
while True:
client_socket, client_addr = tcp_socket.accept()
print(f"客户端{client_addr[0]}已连接")
#创建新线程处理客户端请求
t = threading.Thread(target=handle_client, args=(client_socket, client_addr))
t.start()
t.join()
TCP客户端:
python
import socket
#创建tcp socket
#创建连接到服务器的socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#连接到服务器
client_socket.connect(('127.0.0.1', 8080))
while True:
#发送数据
client_socket.send(input("请向服务器发送数据:").encode('utf-8'))
#接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"从服务器接收到的数据:{data}")
#关闭连接
#SOCK_STREAM:使用TCP协议
client_socket.close()