没有服务器和客户端这一说,就只有发送方和接收方:
接收方
package main.demo.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class ChatReceiver {
public static void main(String[] args) {
DatagramSocket ds=null;
try {
//1创建DatagramSocket
ds=new DatagramSocket(6688);
//2创建接收数据报包
byte[] buf=new byte[1024*64];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
System.out.println("聊天室已启动...");
while(true){
//3接收
ds.receive(dp);
//4处理
String data=new String(dp.getData(),0,dp.getLength());
System.out.println(dp.getAddress()+"说:"+data);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
ds.close();
}
}
}
发送方:
package main.demo.udp;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class ChatSender {
public static void main(String[] args) throws Exception{
//1创建DatagramSocket
DatagramSocket ds=new DatagramSocket();
//2创建数据报包
DatagramPacket dp;
Scanner input=new Scanner(System.in);
while(true){
String data=input.next();
byte[] buf=data.getBytes();
dp=new DatagramPacket(buf,buf.length,
InetAddress.getByName("192.168.102.255"),6688); //192.168.102.255广播地址
//3发送
ds.send(dp);
if(data.equals("886")){
break;
}
}
ds.close();
}
}