1. 程式人生 > 實用技巧 >Java-網路程式設計-UDP

Java-網路程式設計-UDP

1、send方

package cn.bruce.internetkeyboard;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;

/*
 * 實現UDP協議傳送端:
 * 實現封裝資料的類:java.net.DatagramPacket 將你的資料包裝
 * 實現封裝傳輸的類:java.net.DatagramSocket 將資料包發出去
 * 實現步驟:
 * 1、建立DatagramPacket物件,封裝資料,接受的地址和埠
 * 2、建立DatagramSocket,並呼叫send方法,傳送資料報包
 * 3、關閉資源
 
*/ public class UDPSEND { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); InetAddress inet = InetAddress.getByName("127.0.0.1");// 封裝接收IP DatagramSocket DS = new DatagramSocket(); while (true) { byte[] data = sc.nextLine().getBytes();//
封裝資料 // 封裝資料報包 DatagramPacket dPacket = new DatagramPacket(data, data.length, inet, 6033); // 傳送資料 DS.send(dPacket); } // 關閉資源 // DS.close(); } }

2、receive方

package cn.bruce.internetkeyboard;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket; import java.net.SocketException; public class UDPRECEIVE { public static void main(String[] args) throws IOException { DatagramSocket datagramSocket = new DatagramSocket(6033); byte[] data = new byte[1024]; while (true) { DatagramPacket dPacket = new DatagramPacket(data, data.length); datagramSocket.receive(dPacket); System.out.println(new String(data, 0, dPacket.getLength())); } // 長度使用方法來獲取 // datagramSocket.close(); } }

先執行receive,進行執行緒等待,再執行send,進行文字輸入