使用DatagramPacket发送0x04 - 类似十六进制char []数据

时间:2012-08-02 14:32:37

标签: java android sockets

我有一个DatagramSocket,希望使用char[] charData = { 0xff, 0x04, 0x02, 0xfb}通过DatagramSocket发送DatagramPacket个数据。

DatagramPacket使用byte[]作为数据。但我应该像charData变量一样发送它。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我解决了这个案子。我只是做"ff0402fb".getbytes及其工作。

答案 1 :(得分:0)

你可以使用ObjectOutputStream和ByteArrayOutputStream:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(charData);

byte[] toSend = baos.toByteArray();
oos.close();
baos.close();
int port = xxxx;
DatagramPacket p = new DatagramPacket(toSend,toSend.length,InetAddress.getByName("host"),port);
DatagramSocket s = new DatagramSocket();
s.send(p);