python - 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()
我不知道如何按照我的意愿进行操作......以及如何将所有内容转换为二进制文件。我的代码中的小修复会有所帮助,谢谢。
解决方案
推荐阅读
- angular - 如何使用angular7根据组件的asc和desc条件更改图标
- vba - Microsoft word:将文本从多个文本框中复制到选择表中
- arrays - 用于不均匀值的 Hiveposeexplode
- azure-devops - 我托管的 Azure 构建失败并出现“rzc discover exited with code -2147450730”
- javascript - 如何在 JQUERY 中加载带有 Lunr 数据的 JSON 文件?
- python-3.x - 初始化 x11 资源失败
- django - 是否可以从 Django 服务器持续进行长轮询?
- excel - python xlwings在excel表中抓取数据
- python-3.x - Python 字典和使用格式化打印出元素
- javascript - 如何在 React 中模拟组件