java udp发16进制数据_用jython udp p发送原始十六进制数据

我有Java的经验,但我必须将Java库集成到同事的python代码中。进入jython,耶!在

我们正在尝试发送一个UDP包,其中包含非常特定的数据段。在

我们是这样建立数据包的:version = 0x0001

referenceNumber = 0x2323

bookID = byteArray('df82818293819dbafde818ef')

为了便于解释,假设byteArray接受一个十六进制数字字符串并返回一个字节数组

然后我们构建数据包:

^{pr2}$

把它从插座里送出去。在

我知道这是不正确的,数据类型不可能是正确的,所以concat不会做正确的事情。我们如何正确地建立这个包?python文档说s.sendTo()接受一个字符串?我想我想要一个替代s.sendTo()的方法,它需要一个字节数组。在

我们希望数据包到达服务器时udp数据段如下所示:00 01 23 23 df 82 81 82 93 81 9d ba fd e8 18 ef

在python中实现这一点的正确方法是什么?在

我们使用wireshark来验证数据包是否正确到达,现在udp数据段看起来好像python将每个字段转换为ascii表示。例如,referenceNumber字段作为文本字符串“0x2323”的ascii值出现。这是有意义的,因为s.sendTo()接受一个字符串。在

===================解决方案================================

是的,就是这样。。。显示了我对python有多新。对于好奇的人来说,以下是密码:version = '0001'

referenceNumber = '2323'

packet = a2b_hex(version)

packet += a2b_hex(referenceNumber)

.. etc

那就s.send(packet)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值