UDP Socket基本思路小程序

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 * udp socket 接收端
 * 
 * @author Administrator
 * 
 */
public class UDPRecive {

	public static void main(String[] args) throws IOException {
		System.out.println("------------接收端---------");
		// 一、建立socket服務
		DatagramSocket datagramSocket = new DatagramSocket(8888);
		while (true) {
			byte[] b = new byte[1024];
			// 二、建立數據包用於存儲接收到的數據
			DatagramPacket dp = new DatagramPacket(b, b.length);
			// 三、將接收的數據存入數據包
			datagramSocket.receive(dp);
			// 四、解析數據包中的數據
			String ip = dp.getAddress().getHostAddress();
			int port = dp.getPort();
			String str = new String(dp.getData(), 0, dp.getLength());
			System.out.println(ip + ":" + port + "== " + str);
		}
	}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * udp socket 發送端
 * 
 * @author Administrator
 * 
 */
public class UDPSend {

	public static void main(String[] args) throws IOException {
		System.out.println("-----發送端-------");
		// 一、創建udp的socket服務
		DatagramSocket ds = new DatagramSocket(9999);
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));// 獲取鍵盤錄入信息
		String line = null;
		while ((line = br.readLine()) != null) {
			if ("end".equalsIgnoreCase(line)) {
				break;
			}
			byte[] b = line.getBytes();
			// 二、將要發送的數據封裝到數據包中
			DatagramPacket dp = new DatagramPacket(b, b.length,
					InetAddress.getByName("127.0.0.1"), 8888);
			// 三、經過udp的socket服務將數據包發送出去
			ds.send(dp);
			// 四、關閉socket服務
		}
		ds.close();
	}
}
相關文章
相關標籤/搜索