创建一个UDP的接收端

/*思路:
 * 1.创建一个socket服务对象,注意,此处必须明确一个端口号,否则无法接受成功
 * 2.创建一个用于存储接受数据的数据包,方便使用数据包对象的方法解析其中数据
 * 3.使用socket的receive方法把就收到的数据存入数据包中
 * 4.通过数据包的方法解析存储进来的数据
 * 5.关闭资源
 */
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketAddress;

public class receiver {
	public static void main(String[] agrs) throws IOException{
	//第一,创建一个socket服务对象
	DatagramSocket ds = new DatagramSocket(10000);
	
	//第二步,创建一个用于存储接受数据的数据包
	byte[] b = new byte[1024];
	DatagramPacket dp = new DatagramPacket(b,b.length);
	
	//第三步,利用socket的receive方法把接受到的数据存储进数据包中
	ds.receive(dp);
	
	//第四步,使用dp对象的方法解析其中数据
	String hostname = dp.getAddress().getHostName();
	int port = dp.getPort();
	SocketAddress ska = dp.getSocketAddress();//此处的socketaddress对象是ip+port
	InetAddress inet = dp.getAddress();//这里的InetAddress对象是hostname+hostaddress
	String text = new String(dp.getData(),0,dp.getLength());
	System.out.println(hostname+","+port+","+inet+","+ska+","+text);
	
	//第五步,关闭资源
	ds.close();
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章