【发布时间】:2019-03-19 22:10:12
【问题描述】:
这是一个常见问题,但我似乎无法完成这项工作,这不是因为防火墙,我确保 Intellij 已获得授权。
UDP 发件人:
public static void main(String[] args){
Timer timer = new Timer();
try {
InetAddress ip = InetAddress.getLocalHost();
int port = 9850;
byte[] buffer = new byte[100];
DatagramPacket packet = new DatagramPacket(buffer, 100, ip, port);
try {
DatagramSocket socket = new DatagramSocket(port, ip);
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("will send !");
try {
socket.send(packet);
}catch (IOException e){
e.printStackTrace();
return;
}
System.out.println("was sent !");
}
},500, 500);
} catch (SocketException e) {
e.printStackTrace();
return;
}
}catch (UnknownHostException e){
e.printStackTrace();
return;
}
}
UDP 接收器
public static void main(String[] args) {
int port = 8888;
byte[] buffer = new byte[100];
DatagramPacket packet = new DatagramPacket(buffer, 100);
try {
DatagramSocket socket = new DatagramSocket(port);
while(true) {
try {
System.out.println("ready to receive");
socket.receive(packet);
System.out.println("received a packet");
}catch (IOException e){
e.printStackTrace();
return;
}
}
}catch(SocketException e){
e.printStackTrace();
return;
}
}
数据包已发送,发送方显示“将发送/已发送”,但接收方未收到任何内容,已被阻止,仅显示“准备接收”
ps:没关系套接字没有关闭...
【问题讨论】: