91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
且末县| 五家渠市| 临夏市| 扶沟县| 涟水县| 南投市| 乌鲁木齐市| 平定县| 灵寿县| 珠海市| 高陵县| 澄江县| 公主岭市| 安乡县| 中卫市| 左云县| 西华县| 增城市| 大方县| 石棉县| 德江县| 富顺县| 阳新县| 渝中区| 和静县| 罗定市| 扬州市| 和政县| 宁津县| 曲阳县| 县级市| 唐河县| 寿阳县| 宁远县| 大名县| 宝鸡市| 潍坊市| 定边县| 呼和浩特市| 黄大仙区| 青田县|