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

溫馨提示×

java udp通信怎么實現

小億
94
2023-11-18 14:54:02
欄目: 編程語言

Java中實現UDP通信可以使用Java的java.net包中的DatagramSocket和DatagramPacket類。

  1. 創建一個DatagramSocket對象,指定要使用的端口號:
DatagramSocket socket = new DatagramSocket(8888);
  1. 創建一個字節數組用于接收數據,創建一個DatagramPacket對象,用于接收數據:
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
  1. 使用DatagramSocket的receive()方法接收數據:
socket.receive(packet);
  1. 使用DatagramPacket的getData()方法獲取接收到的數據:
byte[] receivedData = packet.getData();
  1. 創建一個字節數組用于發送數據,創建一個DatagramPacket對象,用于發送數據:
String message = "Hello, UDP!";
byte[] sendData = message.getBytes();
InetAddress address = InetAddress.getByName("localhost");
int port = 8888;
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, address, port);
  1. 使用DatagramSocket的send()方法發送數據:
socket.send(sendPacket);
  1. 關閉DatagramSocket對象:
socket.close();

完整示例代碼如下:

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

public class UdpExample {
    public static void main(String[] args) {
        try {
            // 創建DatagramSocket對象,指定端口號
            DatagramSocket socket = new DatagramSocket(8888);

            // 創建接收數據的字節數組和DatagramPacket對象
            byte[] buffer = new byte[1024];
            DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

            // 接收數據
            socket.receive(packet);

            // 獲取接收到的數據
            byte[] receivedData = packet.getData();
            String receivedMessage = new String(receivedData, 0, packet.getLength());
            System.out.println("Received message: " + receivedMessage);

            // 準備發送數據
            String message = "Hello, UDP!";
            byte[] sendData = message.getBytes();
            InetAddress address = InetAddress.getByName("localhost");
            int port = 8888;
            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, address, port);

            // 發送數據
            socket.send(sendPacket);

            // 關閉DatagramSocket
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意:在實際應用中,通常需要使用多線程來實現同時進行接收和發送操作。

0
昂仁县| 望谟县| 和平区| 杭锦旗| 独山县| 晋中市| 馆陶县| 板桥市| 县级市| 承德县| 工布江达县| 北流市| 建湖县| 德钦县| 泗水县| 瑞丽市| 巴彦淖尔市| 贵州省| 丘北县| 泗阳县| 福建省| 屏山县| 马边| 神木县| 张家口市| 灵宝市| 固镇县| 胶南市| 犍为县| 宁波市| 沾益县| 佛山市| 阿巴嘎旗| 建阳市| 金坛市| 娄烦县| 广东省| 陈巴尔虎旗| 武清区| 眉山市| 阳城县|