代码之家  ›  专栏  ›  技术社区  ›  Daniel

如何通过DatagramSocket传输int

  •  0
  • Daniel  · 技术社区  · 7 年前

    我想做一个简单的应用程序通过DatagramSocket传输整数,但我不想做像使用字符串并将其强制转换为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 回复  |  直到 7 年前
        1
  •  0
  •   Andreas dfa    7 年前

    使用A ByteBuffer .

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