python socket 发送十六进制_python socket recv 到的一个数据包中有 print repr出来有16进的有正常的字符串...

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进制包呢!?

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值