中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

java怎么接收udp報文

小億
161
2023-11-08 15:05:06
欄目: 編程語言

要接收UDP報文,可以使用Java的DatagramSocket類。

首先,創建一個DatagramSocket對象來監聽指定的UDP端口。例如,要監聽端口號為9999的UDP報文,可以使用以下代碼:

int port = 9999;
DatagramSocket socket = new DatagramSocket(port);

然后,創建一個字節數組來存儲接收到的數據。可以根據實際情況調整數組的大小。

byte[] buffer = new byte[1024];

接下來,創建一個DatagramPacket對象用于接收數據。在構造方法中,傳入之前創建的字節數組和數組的長度。

DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

接著,使用DatagramSocket的receive()方法接收UDP報文。此方法會阻塞,直到接收到報文為止。

socket.receive(packet);

最后,可以通過DatagramPacket的getData()方法獲取接收到的數據,并根據實際情況進行處理。

byte[] receivedData = packet.getData();
int length = packet.getLength();
String message = new String(receivedData, 0, length);

完整的代碼如下:

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDPReceiver {
    public static void main(String[] args) {
        try {
            int port = 9999;
            DatagramSocket socket = new DatagramSocket(port);
            
            byte[] buffer = new byte[1024];
            DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
            
            socket.receive(packet);
            
            byte[] receivedData = packet.getData();
            int length = packet.getLength();
            String message = new String(receivedData, 0, length);
            
            System.out.println("Received message: " + message);
            
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意:以上代碼只能接收一個UDP報文。如果需要連續接收多個報文,可以將接收報文的代碼放在一個循環中。

0
汪清县| 宜章县| 清远市| 临江市| 长海县| 米泉市| 嵊州市| 宝清县| 宾川县| 普洱| 定州市| 台东县| 兴仁县| 锡林浩特市| 石景山区| 东安县| 沙洋县| 普兰店市| 乐清市| 于田县| 兰州市| 周口市| 昔阳县| 专栏| 南雄市| 平陆县| 吴川市| 墨竹工卡县| 台安县| 沁阳市| 黑水县| 米林县| 龙胜| 平泉县| 海盐县| 富阳市| 吉安县| 淮南市| 牡丹江市| 西城区| 嘉义县|