发送端:
public class Send implements Runnable {
private DatagramSocket datagramSocket;
public Send(DatagramSocket datagramSocket) {
this.datagramSocket=datagramSocket;
}
@Override
public void run() {
try {
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
String line;
while((line=bufferedReader.readLine())!=null){
byte[] buf=line.getBytes();
DatagramPacket datagramPacket=new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.100"),10003);
datagramSocket.send(datagramPacket);
}
datagramSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
接收端:
public class Receve implements Runnable {
private DatagramSocket datagraSocket;
public Receve(DatagramSocket datagraSocket) {
this.datagraSocket=datagraSocket;
}
@Override
public void run() {
while(true){
try {
byte[] buf=new byte[1024];
DatagramPacket datagramPacket=new DatagramPacket(buf, buf.length);
datagraSocket.receive(datagramPacket);
String ip=datagramPacket.getAddress().getHostAddress();
String data=new String(datagramPacket.getData(),0,datagramPacket.getLength());
System.out.println(ip+":"+data);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
main‘函数:
try {
DatagramSocket send = new DatagramSocket();
DatagramSocket receive=new DatagramSocket(10003);
new Thread(new Send(send)).start();
new Thread(new Receve(receive)).start();
} catch (SocketException e) {
e.printStackTrace();
}