python中的二进制协议抛出套接字

时间:2018-05-03 06:58:45

标签: python sockets binary

我正在构建c ++服务器,它以二进制协议从客户端获取数据。协议看起来像这样:

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

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

消息代码:100 数据长度:4 数据:很好

我怎样才能发送套接字?我的意思是数据长度只需要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()

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

0 个答案:

没有答案