我正在构建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()
我不知道如何按我的意愿去做...以及如何将所有内容转换为二进制文件。我的代码中的一些小修复将有所帮助,谢谢。