import java.net.*;
import java.io.*;
class UDPDemo2
{
}
//发送端
class UDPsend2
{
public static void main(String[] args) throws Exception
{
//1、建立udp的socket服务.
DatagramSocket ds = new DatagramSocket();
//2、间数据封装成数据包.
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); //键盘录入
String line = null;
while((line = bufr.readLine()) != null)
{
byte [] data = line.getBytes();
InetAddress ip = InetAddress.getByName("192.168.1.101"); //192.168.1.255以广播的形式发送.
DatagramPacket dp = new DatagramPacket(data, data.length, ip, 1035);
//3、通过socket服务的send方法,将数据包发送出去.
ds.send(dp);
}
//4、关闭资源.
ds.close();
}
}
//接收端
class UDPreceive2
{
public static void main(String[] args) throws Exception
{
//1、建立udp的socket服务.监听发送端口的数据.
DatagramSocket ds = new DatagramSocket(1035);
while (true)
{
//2、建立数据包,存放数据.
byte [] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
//3、貂绒receive方法接收数据.
ds.receive(dp);
String name = dp.getAddress().getHostName();
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(), 0, dp.getLength());
int port = dp.getPort(); //该端口有系统动态分配.
System.out.println(name + ".."+ ip + ".." + ".." + port + ":"+ data);
}
}
}