import java.net.*;
import java.io.*;
class UdpSend
{
public static void main(String[] args) throws Exception
{
//1,创建udp服务,建立端点,通过DatagramPacket对象
DatagramSocket ds = new DatagramSocket();
//2,确定数据,并封装成数据包。 DatagramPacket(byte[] buf, int length, InetAddress address, int port)
//键盘录入方式
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line=bufr.readLine())!=null)
{
if("886".equals(line))
break;
byte[] buf = line.getBytes();
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.108"),10005);
ds.send(dp);
}
// byte buf = "udp hehe".getBytes();
// DatagramPacket dp =
// new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.1"),10000);
//3,通过socket服务,将已有的数据包发送出去,通过send方法。
//4,关闭资源。
ds.close();
}
}
class UdpRece
{
public static void main(String[] args) throws Exception
{
//1,创建udp socket,建立端点。
DatagramSocket ds = new DatagramSocket(10005);
while(true)
{
//2,定义数据包,用于存储数据。
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
//3,通过服务的receive方法将收到数据存入数据包中
ds.receive(dp);
//4,通过数据包的方法获取其中的数据。
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
int port = dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
}
//5,关闭资源
//ds.close();
}
}
这下都通过了 |