Java提供了UDP協議的支持,允許程序之間進行無連接通信。在UDP通信中,我們可以指定對方的IP地址和端口號,使得通信更加精準。
在Java中,我們可以使用DatagramSocket和DatagramPacket類來進行UDP通信。其中,DatagramSocket是用于發送和接收數據報的類,DatagramPacket則是用于存放數據報的類。
若要指定對方的IP地址和端口號,我們可以在創建DatagramPacket對象時指定。下面是一個示例:
// 指定對方IP地址和端口號 InetAddress address = InetAddress.getByName("對方IP地址"); int port = 對方端口號; DatagramPacket packet = new DatagramPacket(數據數組, 數據長度, address, port);
在這個示例中,我們使用了InetAddress類獲取了對方的IP地址,并將它和對方端口號一起傳入DatagramPacket構造函數中,來創建一個指定IP和端口的數據包。
在發送數據時,我們可以使用DatagramSocket類的send方法來發送剛剛創建的數據包,示例如下:
// 創建Socket對象 DatagramSocket socket = new DatagramSocket(); // 發送數據包 socket.send(packet);
在這段代碼中,我們創建了一個DatagramSocket對象,用于發送數據,在send方法中傳入了剛剛創建的數據包,將數據包發送出去。
在接收數據時,我們也可以指定IP地址和端口號,示例代碼如下:
// 創建Socket對象并指定接收端口號 DatagramSocket socket = new DatagramSocket(接收端口號); // 創建數據包對象 byte[] data = new byte[1024]; DatagramPacket packet = new DatagramPacket(data, data.length); // 接收數據包 socket.receive(packet); // 獲取數據包中的數據 String msg = new String(packet.getData(), 0, packet.getLength());
在這個示例中,我們創建了一個DatagramSocket對象,并指定接收端口號,創建了一個DatagramPacket對象用于接收數據。在接收到數據包后,我們通過getData和getLength方法獲取到數據包中的數據。