用tcp传输buffer写个案例
时间: 2023-06-30 18:21:49 浏览: 136
好的,这里是一个使用TCP传输Buffer的简单案例。
服务端代码:
```python
import socket
HOST = '127.0.0.1'
PORT = 8888
# 创建TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定主机和端口
server_socket.bind((HOST, PORT))
# 监听连接
server_socket.listen()
# 等待客户端连接
print('等待客户端连接...')
client_socket, client_address = server_socket.accept()
print(f'客户端 {client_address} 已连接')
# 发送数据
message = 'Hello, client!'
buffer = bytes(message.encode())
client_socket.send(len(buffer).to_bytes(4, byteorder='big'))
client_socket.send(buffer)
# 关闭连接
client_socket.close()
server_socket.close()
```
客户端代码:
```python
import socket
HOST = '127.0.0.1'
PORT = 8888
# 创建TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务端
client_socket.connect((HOST, PORT))
# 接收数据
buffer_size = int.from_bytes(client_socket.recv(4), byteorder='big')
buffer = client_socket.recv(buffer_size)
message = buffer.decode()
print(f'收到来自服务端的消息:{message}')
# 关闭连接
client_socket.close()
```
这个案例中,服务端向客户端发送一条消息,使用了TCP传输Buffer。服务端先把消息转换为字节类型的Buffer,然后在Buffer前面加上一个4字节的包头,包头中存储了Buffer的长度信息。接着,服务端将包头和Buffer分别通过TCP套接字发送给客户端。客户端接收到数据后,首先从TCP套接字中读取4字节的包头,获取到Buffer的长度信息,再从TCP套接字中读取Buffer的数据。最后,客户端将Buffer转换为字符串类型的消息,并打印在控制台上。
注意,这个案例中的服务端和客户端都是单次通信的,也就是说它们只会发送一次数据就立刻关闭连接。如果需要实现多次通信,需要在代码中加入循环结构来实现。
阅读全文