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("------------接收端---------");
		// 1、创建socket服务
		DatagramSocket datagramSocket = new DatagramSocket(8888);
		while (true) {
			byte[] b = new byte[1024];
			// 2、创建数据包用于存储接收到的数据
			DatagramPacket dp = new DatagramPacket(b, b.length);
			// 3、将接收的数据存入数据包
			datagramSocket.receive(dp);
			// 4、解析数据包中的数据
			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("-----发送端-------");
		// 1、建立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();
			// 2、将要发送的数据封装到数据包中
			DatagramPacket dp = new DatagramPacket(b, b.length,
					InetAddress.getByName("127.0.0.1"), 8888);
			// 3、通过udp的socket服务将数据包发送出去
			ds.send(dp);
			// 4、关闭socket服务
		}
		ds.close();
	}
}


你可能感兴趣的:(socket,UDP)