如何通过DatagramSocket传输int

时间:2018-12-11 04:35:11

标签: java udp datagram

我想做一个简单的应用程序来通过DatagramSockets传输整数,但是我不想做诸如使用Strings并将其强制转换为int之类的变通办法,我想知道是否存在通过DatagramSocket传递整数的专门方法。

//sender side
public void Send() throws Exception {
    DatagramSocket socket = new DatagramSocket(3000);
    int x = 5;
    DatagramPacket sendPacket = ...
    socket.send(sendPacket);
}

//reeceiver side
public void Receive() throws Exception {
    DatagramSocket socket = new DatagramSocket(2000);
    DatagramPacket receivePacket = ...
    socket.receive(receivePacket);  
    int x = (int) receivePacket;
}

此代码的一部分只是为了演示我想要的。我想知道如何在发送方写一个int以及如何在接收方读这个int。

1 个答案:

答案 0 :(得分:0)

使用ByteBuffer

SocketAddress address = ...
int value = ...

byte[] buf = ByteBuffer.allocate(Integer.BYTES).putInt(value).array();
socket.send(new DatagramPacket(buf, buf.length, address));