package cn.itcast_01;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/*
* UDP协议接受数据
* A:创建接受段Socket对象
* B:创建一个数据包,(一个接受数据的容器)
* C:调用Socket对象的接受方法接受数据
* D:解析数据包,并显示在控制台
* E:释放资源
*
*/
public class ReceiveDome {
public static void main(String[] args) throws IOException {
//创建接受段Socket对象,要指定端口接受
//DatagramSocket(int port)
DatagramSocket ds = new DatagramSocket(10086);
//创建一个数据包
//DatagramPacket(byte buf,int length)
byte[] bys = new byte[1024];
int length = bys.length;
DatagramPacket dp = new DatagramPacket(bys,length);
//调用Socket对象的接受方法来接受数据
//public void receive (DatagramPacket p)
ds.receive(dp);//阻塞式
//解析数据包,并显示在控制台
//获取对方IP信息
//public InetAddress getAddress();
InetAddress address = dp.getAddress();
String ip = address.getHostAddress();
//public byte[] getData();获取数据缓冲区
//public int getLength();获取数据的实际长度
byte[] bys2 = dp.getData();
int length2 = dp.getLength();
String s= new String(bys2,0,length2);
System.out.println(s+"---"+ip);
//释放资源
ds.close();
}
}
UDP协议接受数据代码实现和简介
最新推荐文章于 2021-11-12 13:23:28 发布