python 接收TCP报文数据
时间: 2023-08-12 08:28:26 浏览: 50
在 Python 中接收 TCP 报文数据,可以使用 socket 模块中的 socket 类。以下是一个简单的示例代码:
```python
import socket
HOST = 'localhost' # 监听的 IP 地址
PORT = 8888 # 监听的端口号
# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定 IP 地址和端口号
s.bind((HOST, PORT))
# 开始监听,最大连接数为 1
s.listen(1)
# 等待客户端连接
conn, addr = s.accept()
print('Connected by', addr)
# 循环接收数据
while True:
data = conn.recv(1024) # 一次最多接收 1024 字节数据
if not data:
break
print('Received', repr(data))
# 关闭连接
conn.close()
```
其中,`socket.AF_INET` 表示使用 IPv4 协议,`socket.SOCK_STREAM` 表示使用 TCP 协议。`s.bind((HOST, PORT))` 绑定 IP 地址和端口号,`s.listen(1)` 开始监听,最大连接数为 1。`s.accept()` 等待客户端连接,并返回连接对象 `conn` 和客户端 IP 地址 `addr`。`conn.recv(1024)` 接收数据,一次最多接收 1024 字节数据。当客户端断开连接时,`conn.recv()` 返回空字符串,此时循环结束,关闭连接 `conn.close()`。