pythonsocket服务端recv到的一个数据包,然后用变量data来放,data=server_sock.recv(8192)printrepr(data)出来有16进制的数据和一般字符串组合成的数据。如下所示:'\x1f\x1f\x01\x0...
python socket 服务端 recv到的一个数据包,然后用变量data 来放,
data = server_sock.recv(8192)
print repr(data)
出来有16进制的数据和一般字符串组合成的数据。如下所示:
'\x1f\x1f\x01\x00\x00\x00\xc2<?xml version = "1.0" encoding = "utf-8"?>...'
这个数据包是分为4部分。
1f1f 是第一部分,占2个字节
01是第二部分,占1个字节
后面的十六进的部分占4个字节,内容第四个部分的xml的长度。
数据包是这种格式,请问我该怎么保证client接受到的数据包前三个部分和上述的一样。
我怎么用send方法将同上一样的数据结构send()给客户端,
为什么print 出来的数据有一半是16进的有一半是str的
已知条件:utf-8编码(python2.7 )默认是ascii已经 set(utf-8)过。
我想在send方法里传一个 hex(response_pack),
但是这个response_pack我该怎样生成。有前三个部分的十六进制,有最后的xml str。
恳请前辈指点
是要这么写么?struct.pack('i i i s ',var1,var2,var3,var4)pack需要格式化控制,'0x1f0x1f0x010x000x000x000xc2<?xml version = "1.0" encoding = "utf-8"?>...'例如这样的数据,我该怎么用pack来操作呢?因为不知道pack第一个参数怎么写。pack是用来将数据打包成二进制流的么?!可是我要操作16进制,该怎么保证client端能看到我想发送的16进制包呢!?
展开