try {
final String ip = "192.168.1.1";
final int port = 9581;
new Thread(new Runnable() {
@Override
public void run() {
try {
DatagramSocket datagramSocket = new DatagramSocket(port);
while (true) {
byte[] bytes = new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);
datagramSocket.receive(datagramPacket);
String result = new String(bytes);
System.out.println(result);
if (result.equals("close")) {
break;
}
}
datagramSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
DatagramSocket datagramSocket = new DatagramSocket();
Scanner sn = new Scanner(System.in);
while (true) {
String content = sn.nextLine();
if(content.startsWith("exit"))System.exit(0);
byte[] bytes = content.getBytes();
DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, InetAddress.getByName(ip),port);
datagramSocket.send(datagramPacket);
}
} catch (Exception e) {
e.printStackTrace();
}
发送端
try{
DatagramSocket datagramSocket=new DatagramSocket();
Scanner sn=new Scanner(System.in);
while(true){
String str="我啥都会";
if(str.equals("0")){
break;
}
byte[] bb=str.getBytes();
for(int i=1;i<255;i++){
DatagramPacket datagramPacket=new DatagramPacket(bb, bb.length,InetAddress.getByName("192.168.113."+i),9999);
datagramSocket.send(datagramPacket);
//System.out.println("发送完毕");
}
}
datagramSocket.close();
}catch ( Exception e){
e.printStackTrace();
}
接收端
try{
DatagramSocket datagramSocket = new DatagramSocket(9999);
byte[] bb=new byte[1024];
int count=1;
while(true) {
DatagramPacket datagramPacket = new DatagramPacket(bb, bb.length);
datagramSocket.receive(datagramPacket);
if(datagramPacket.getAddress().toString().equals("/192.168.113.83")||datagramPacket.getAddress().toString().equals("/192.168.113.54"))continue;
String result = new String(datagramPacket.getData());
if(result.equals("0")){
break;
}
System.out.println( count+"接收消息:"+result +"\n"+datagramPacket.getAddress());
count++;
}
datagramSocket.close();
}catch (Exception e){}
本文介绍了一个使用Java实现的UDP网络通信示例,包括发送端和接收端的代码。发送端循环向局域网内的不同地址广播固定消息,而接收端则监听特定端口并打印接收到的数据。
3032

被折叠的 条评论
为什么被折叠?



