1. 程式人生 > >java網路程式設計:12、基於UDP的socket程式設計(二)程式碼通訊-簡單例項

java網路程式設計:12、基於UDP的socket程式設計(二)程式碼通訊-簡單例項

宣告:本教程不收取任何費用,歡迎轉載,尊重作者勞動成果,不得用於商業用途,侵權必究!!!

文章目錄

一、基於UDP伺服器端程式的編寫

二、基於UDP客戶端程式的編寫

三、系列文章(java網路程式設計)


通過上篇文章瞭解了基於UDP通訊的理論、基本步驟以及它跟TCP的區別,大家如需瞭解可參考 java網路程式設計:11、基於UDP的socket程式設計(一)理論、基本步驟 這篇寫一個簡單的例項來感受一下!

一、基於UDP伺服器端程式的編寫

	/**
	 * 基於UDP伺服器端程式的編寫
	 */
	public static void recv() {
		try {
			//建立資料報套接字物件,繫結埠號為6000
			DatagramSocket ds = new DatagramSocket(6000);
			//構建資料包接收資料:
			//建立位元組陣列
			byte[] buf = new byte[100];
			//建立資料包物件,它的長度不能超過陣列的長度,我們把它設為100
			DatagramPacket dp = new DatagramPacket(buf, 100);
			//接收資料
			ds.receive(dp);
			//列印資料
			//getLength方法返回實際接收數;getData方法返回資料,返回格式為位元組陣列
			System.out.println(new String(buf, 0, dp.getLength()));
			
			//關閉資料報套接字
			ds.close();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

二、基於UDP客戶端程式的編寫

	/**
	 * 基於UDP客戶端程式的編寫
	 */
	public static void send() {
		try {
			//建立一個數據報物件。
			DatagramSocket ds = new DatagramSocket();
			//要傳送的資料
			String str = "Hello,this is zhangsan";
			//構造一個傳送資料包:
			//InetAddress.getByName("localhost"):獲得本地ip地址
			//埠號指定為6000
			DatagramPacket dp = new DatagramPacket(
					str.getBytes(), 
					str.length(),
					InetAddress.getByName("localhost"),
					6000);
			//傳送資料包
			ds.send(dp);
			
			//關閉資料報套接字
			ds.close();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

三、測試列印

我們先啟動recv接收端,然後再啟動send傳送端,那麼我們可以看到接收端收到了資訊,如下圖:

那麼對於這個recv接收端來說,它能不能夠給我們send傳送端,回一個資訊呢?

詳見下篇文章: java網路程式設計:13、基於UDP的socket程式設計(三)實現相互發送接收訊息

 

四、系列文章(java網路程式設計)

 java網路程式設計:1、計算機網路?網路通訊的組成?什麼是ip、協議、埠號?

 java網路程式設計:2、IP地址、協議、網路狀況、網路異質性問題的解決

 java網路程式設計:3、ISO/OSI七層參考模型

 java網路程式設計:4、OSI各層所使用的協議

 java網路程式設計:5、資料封裝

 java網路程式設計:6、TCP/IP模型、TCP/IP模型與OSI參考模型的對應關係

 java網路程式設計:7、埠、套接字(socket)的引入

 java網路程式設計:8、基於TCP的socket程式設計(一)簡單的socket通訊_一個客戶端

 java網路程式設計:9、基於TCP的socket程式設計(二)伺服器端迴圈監聽接收多個客戶端_多執行緒伺服器程式

java網路程式設計:10、基於TCP的socket程式設計(二)緩衝流、flush方法、關閉流

java網路程式設計:11、基於UDP的socket程式設計(一)理論、基本步驟

 java網路程式設計:12、基於UDP的socket程式設計(二)程式碼通訊-簡單例項

 java網路程式設計:13、基於UDP的socket程式設計(三)實現相互發送接收訊息