利用UDP傳輸數據

發送端

public static void main(String[] args) throws Exception {

1.創建數據報包套接字 有個Send()發送方法
DatagramSocket ds = new DatagramSocket();
System.out.println(“UDP發送服務啓動”);

2.準備數據 如果是系統輸入就是System.in 保存到數據包中
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = br.readLine())!=null) {
byte[] buf =str.getBytes();

3.創建數據報包 傳入套接字中
//數據包發送端需知曉接收方的IP地址也就是IP Name
//IP地址對象
*InetAddress address = InetAddress.getByName(“xxx.xxx.x.xxx”);
//端口
//唯一端口任意擬定
DatagramPacket dp = new DatagramPacket (buf, buf.length,InetAddress.getByName(“xxx.xxx.x.xxx”), 8080);
4.套接字調用Send()方法
ds.send(dp);
System.out.println(“發送完畢”);
}
ds.close();
}

接收端
public static void main(String[] args) throws IOException {
System.out.println(“UDP接受服務啓動”);
//創建一個數據報包套接字接收存儲了字節數組的數據包 有一個receive()
DatagramSocket ds = new DatagramSocket(5000);
//創建一個存儲的字節數組
while (true) {
byte[] buf = new byte[1024];
//創建一個空的數據包將存儲數據的字節數組存入數據包中通過套接字接收
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.receive(dp);
InetAddress ip = dp.getAddress(); //獲取發送者的IP地址
System.out.println(ip + ” , 數據接收完成…”);
// 解析數據,並顯示在控制檯
// byte[] getData() : 獲取數據緩衝區
// int getLength() : 獲取數據的實際長度
System.out.println(new String(dp.getData(), 0, dp.getLength()));
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章