发送端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Sender {
public static void main(String[] args) {
try {
DatagramSocket sendSocket=new DatagramSocket();
String mes="hello";
byte[] buf=mes.getBytes();
int port=10000;
InetAddress ip=InetAddress.getLocalHost();
DatagramPacket sendPacket=new DatagramPacket(buf,buf.length,ip,port);
sendSocket.send(sendPacket);
byte[] getBuf=new byte[1024];
DatagramPacket getPacket=new DatagramPacket(getBuf,getBuf.length);
sendSocket.receive(getPacket);
String backMes=new String(getBuf,0,getPacket.getLength());
System.out.println("接受方返回的消息:"+backMes);
sendSocket.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
接受端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketAddress;
public class Receive {
public static void main(String[] args) {
InetAddress ip;
try {
ip = InetAddress.getLocalHost();
int port=10000;
DatagramSocket getSocket=new DatagramSocket(port,ip);
byte[] buf=new byte[1024];
DatagramPacket getPacket=new DatagramPacket(buf,buf.length);
getSocket.receive(getPacket);
String getMes=new String(buf,0,getPacket.getLength());
System.out.println("对方发送的消息:"+getMes);
InetAddress sendIp=getPacket.getAddress();
int sendPort=getPacket.getPort();
System.out.println("对方的IP地址是:"+sendIp.getHostAddress()+" sendPort:"+sendPort);
SocketAddress sendAddress=getPacket.getSocketAddress();
String feedback="i receive";
byte[] backBuf=feedback.getBytes();
DatagramPacket sendPacket=new DatagramPacket(backBuf,backBuf.length,sendAddress);
getSocket.send(sendPacket);
getSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}