/*思路:
* 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();
}
}