使用udp进行数据的发送和接收

public class SendDemo {
	public static void main(String[] args) throws IOException {
		
		
		// 创建发送端Socket对象
		DatagramSocket datagramSocket = new DatagramSocket();
		// 创建数据,并把数据打包
		byte[] bytes = "Hello udp".getBytes();
		InetAddress inetAddress = InetAddress.getByName("192.168.0.127");
		int port = 10086;
		DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length,inetAddress, port);
		// 调用Socket对象的发送方法发送数据包
		datagramSocket.send(datagramPacket);

	}
}

 接收代码

public class ReceiveDemo {
	public static void main(String[] args) throws IOException {
		DatagramSocket datagramSocket = new DatagramSocket(10086);
		byte[] bytes = new byte[1024];
		int length = bytes.length;
		DatagramPacket datagramPacket = new DatagramPacket(bytes, length);
		datagramSocket.receive(datagramPacket);
		
		// 解析数据包,并显示在控制台
				// 获取对方的ip
				// public InetAddress getAddress()
				InetAddress address = datagramPacket.getAddress();
				String ip = address.getHostAddress();
				// public byte[] getData():获取数据缓冲区
				// public int getLength():获取数据的实际长度
				byte[] bys2 = datagramPacket.getData();
				int len = datagramPacket.getLength();
				String s = new String(bys2, 0, len);
				System.out.println(ip + "传递的数据是:" + s);
		
		datagramSocket.close();
		
	}

}

 运行的时候,要保证两台机器在同一个局域网上,其次要先运行接收端

  通过运行,我们发现,udp确实是一个不可靠的连接,它没有管你是否接收到了

  它的作用就是发送,不去管你接收端是否接收到了

猜你喜欢

转载自1193355343.iteye.com/blog/2370446