如何通过 DatagramSocket 传输一个 int

How to transfer an int via DatagramSocket

我想做一个简单的应用程序来通过 DatagramSockets 传输整数,但我不想做一些变通方法,比如使用字符串并将它们转换为 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。

使用 ByteBuffer.

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

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