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