Как передать int через DatagramSocket - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу сделать простое приложение для передачи целых чисел через 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 голосов
/ 11 декабря 2018

Используйте ByteBuffer.

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

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