使用UDP完成一对一信息的发送与接收

使用UDP完成一对一信息的发送与接收

创建发送端

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpSet {

	public static void main(String[] args) throws Exception {
//			while (true) {
				DatagramSocket d = new DatagramSocket();
				byte[] b = "吁".getBytes();
				DatagramPacket  w =new DatagramPacket(b,b.length,InetAddress.getByName("172.16.1.108"),10000);
					d.send(w);
					d.close();
			}
	}

//}

创建接收端

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpReceipt {

	public static void main(String[] args) throws IOException {
		// 1:建立udp的socket服务
		DatagramSocket d = new DatagramSocket(10000);
		// 2:通过receive方法接收数据
		// (1)创建保存数据的数据包对象
		byte[] b =new byte[1024];
		DatagramPacket datagramPacket = new DatagramPacket(b, b.length);
	
		//获取地址 请求端口 存储数据的字节数组 实际长度
		
		while (true) {
			//receive是阻塞方法,与scanner的获取数据类似
			//当程序执行到这个方法时会暂停运行,当接收到发送端发送的数据后继续执行
			d.receive(datagramPacket);
			//获取地址、端口号、长度
			InetAddress address = datagramPacket.getAddress();
			int port  = datagramPacket.getPort();//获取请求端口
			byte[] data = datagramPacket.getData();//获取存储数据的字节数组
			int length = datagramPacket.getLength();//获取数据实际长度
			System.out.println(address);
			System.out.println(port);
			System.out.println(new String(data,0,length));
		
		}
		}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值