首页 > 解决方案 > python中的二进制协议抛出套接字

问题描述

我正在构建以二进制协议从客户端获取数据的 C++ 服务器。协议如下所示:

消息代码:1 BYTE | 数据长度:4 BYTES | 数据:X 字节

所以我需要从客户端发送与此协议匹配的信息。所以可以说我想从客户端发送这些数据:

消息代码:100 数据长度:4 数据:nice

我如何发送抛出套接字?我的意思是数据长度只需要 1 个字节,但在协议中我希望永久为 4 个字节。那么我怎样才能完成其他 3 个字节呢?我怎样才能发送数据抛出不是字符串的套接字?

到目前为止,这是我的代码:

import socket
PORT, IP = 5280, '127.0.0.1'
SERVER_ADDRESS = (IP, PORT)

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(SERVER_ADDRESS)

code = 100
length = 14
data = "nice"

sock.sendall(code)
sock.sendall(length)
sock.sendall(data.encode("ASCII"))

print "Server said:", sock.recv(1024) # Server response
sock.close()

我不知道如何按照我的意愿进行操作......以及如何将所有内容转换为二进制文件。我的代码中的小修复会有所帮助,谢谢。

标签: pythonsocketsbinary

解决方案


推荐阅读