python把字符串转为二进制_python中,怎么样把特定的字符串转为二进制序列?

匿名用户

1级

2014-09-10 回答

如果是需要pack字符串后,再使用socket进行发送的话,这样应该就可以了

import struct

str1='3e210925041f000000a0010112008289125ba0000000'

sdata=struct.pack('%ds'%len(str1),str1)

...

s.send(sdata)

追问:

>>> type(sdata)

你的结果仍是str类型,不是bytes

追答:

你把socket接口发出来,我看看吧,被你搞晕了....

追问:

就是简单的UDP发送,我要模拟特定的数据结构,然后在wireshark上看,

d_ip='10.68.232.176'

d_port=2152

d_addr=(d_ip,d_port)

s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.sendto('需要的二进制序列',d_addr)

追答:

这样试试:

import struct

import socket

def SocketClient():

try:

#建立socket对象

s=socket(AF_INET,SOCK_STREAM,0)

Colon = ServerUrl.find(':')

IP = ServerUrl[0:Colon]

Port = ServerUrl[Colon+1:]

#建立连接

s.connect((IP,int(Port)))

str1='3e210925041f000000a0010112008289125ba0000000'

sdata=struct.pack('%ds'%len(str1),str1)

s.send(sdata)

sresult=s.recv(1024)

print "Response:\r\n%s\r\n" %sresult

#关闭Socket

s.close()

except Exception,ex:

print ex

ServerUrl = "10.68.232.176:2152"

SocketClient()

socket.send(string)

如果你需要send 十六进制,二进制数据什么的,使用进制转换后,再pack成string发送即可

追问:

看图吧,二进制和str的表现;我需要在16进制那一块显示;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值