PYTHON TCP 发送报文 接收返回的数据
时间: 2023-08-15 21:06:47 浏览: 69
在 Python 中,可以使用 socket 模块来实现 TCP 套接字的发送和接收数据。下面是一个简单的示例代码,用于发送 TCP 报文并接收远程服务器返回的数据:
```python
import socket
# 创建 TCP 套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接远程服务器
server_address = ('服务器IP', 服务器端口号)
client_socket.connect(server_address)
# 发送数据
message = 'Hello, server!'
client_socket.send(message.encode())
# 接收数据
recv_data = client_socket.recv(1024)
print('Received from server: ', recv_data.decode())
# 关闭套接字
client_socket.close()
```
在上面的代码中,首先创建了一个 TCP 套接字并连接到远程服务器。然后使用 `send()` 方法发送数据,`recv()` 方法接收数据并打印出来。最后关闭套接字连接。
需要注意的是,这个示例代码只适用于简单的 TCP 通信,如果需要实现更复杂的通信,需要根据具体情况进行修改。
相关问题
python 接收TCP报文数据
在 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()`。
python TCP客户端接收服务器发送的报文数据
可以使用 Python 的 socket 模块来实现 TCP 客户端接收服务器发送的报文数据。具体步骤如下:
1. 创建 socket 对象。例如:
```python
import socket
# 创建 TCP 套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
```
2. 连接服务器。例如:
```python
# 服务器 IP 和端口号
server_address = ('127.0.0.1', 8888)
# 连接服务器
client_socket.connect(server_address)
```
3. 接收服务器发送的数据。例如:
```python
# 接收数据
data = client_socket.recv(1024)
# 处理数据
print('Received data:', data.decode())
```
4. 关闭连接。例如:
```python
# 关闭连接
client_socket.close()
```
完整代码示例:
```python
import socket
# 创建 TCP 套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 服务器 IP 和端口号
server_address = ('127.0.0.1', 8888)
# 连接服务器
client_socket.connect(server_address)
# 接收数据
data = client_socket.recv(1024)
# 处理数据
print('Received data:', data.decode())
# 关闭连接
client_socket.close()
```