约 1253 字
约 6 分钟
传输控制协议(Transmission Control Protocol) 是一种 面向连接、可靠传输 的网络通信协议,是现代互联网最核心的协议之一。
TCP 客户端程序通常只需要连接到服务器然后收发数据即可。下面是一个示例,它向 tcpbin.com
的 4242
端口发送 hello\n
,对方会原样返回。
import socket
# 创建 TCP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 建立链接
sock.connect(('tcpbin.com', 4242))
# 发送数据
sock.send('hello\n'.encode())
# 接收数据
data = sock.recv(1024)
print('收到:', data.decode())
AF_INET
表示使用 IPv4 地址, SOCK_STREAM
表示使用 TCP TCP 服务器程序需要绑定并监听地址端口,等待客户端连接后进行收发数据。下面是一个示例,它监听本机所有 IPv4 地址的 4242
端口。
收到来自客户端的连接后,接收数据并原样返回。将上面客户端代码中的 tcpbin.com
改为 localhost
即可与此服务端通信。
import socket
# 创建 TCP socket,这个 socket 专门监听端口
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址端口,0.0.0.0 表示本机的所有 IPv4 地址
server.bind(('0.0.0.0', 4242))
# 监听
server.listen(5)
# 循环接受连接
while True:
sock, addr = server.accept() # 接受连接,创建新的 socket
print(f'收到了来自 {addr} 的连接')
data = sock.recv(1024) # 接收数据
sock.send(data) # 原样返回
sock.close() # 断开连接
listen
的参数表示连接队列的大小,即在 accept
接受连接之前,最多缓存的连接个数。 创建于 2025/5/13 18:02:41
更新于 2025/5/13 18:02:41