亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
建湖县| 凌源市| 罗山县| 白山市| 永和县| 乌兰县| 福建省| 湾仔区| 三原县| 翁牛特旗| 叙永县| 中卫市| 镇赉县| 黎平县| 新乐市| 读书| 镇原县| 利辛县| 余干县| 郓城县| 青岛市| 芦溪县| 梅河口市| 海伦市| 白沙| 泸定县| 宿迁市| 扶余县| 门源| 彰化县| 云龙县| 高密市| 紫云| 北宁市| 黄龙县| 汾阳市| 冷水江市| 宁蒗| 衡东县| 峨眉山市| 博湖县|