我在這裏有一個UDP ping客戶端。我不知道我是否做得對,但我認爲它可以工作,如果我將IP地址設置爲127.0.0.1
。但是,如果我將其設置爲Google的IP地址,則不會。我收到一個例外:java.net.SocketTimeoutException: Receive timed out
。我可以ping我的本地主機,但我不能與其他IP地址
import java.io.*;
import java.net.*;
import java.util.*;
public class PingClient {
private static final int AVERAGE_DELAY = 0;
public static void main(String[] args) throws Exception {
int port = 4997;
DatagramSocket socket = new DatagramSocket(port);
for(int i=1;i<=10;i++) {
byte[] buf = new byte[1024] ;
Calendar cal=Calendar.getInstance();
String ping="PING "+ i +" "+cal.getTimeInMillis()+" ms"+"\r\n";
buf=ping.getBytes("UTF-8");
InetAddress address = InetAddress.getByName("69.63.176.11");
DatagramPacket packet = new DatagramPacket(buf, buf.length, address, port);
packet.setData(buf);
socket.send(packet);
Thread.sleep(10* AVERAGE_DELAY);
DatagramPacket server_response = new DatagramPacket(new byte[1024], 1024);
socket.setSoTimeout(1000);
socket.receive(server_response);
printData(server_response);
}
}
}
你是什麼意思的「我不能ping」?例外?沒有答案?另外,至於2.是的,因爲127.0.0.1是回送,並且是你自己的機器。 – fge
遠程計算機上的UDP端口4997上是否有任何內容希望得到答案? –
@fge:我得到一個異常:'java.net.SocketTimeoutException:接收定時out' @JoachimPileborg:沒有,沒有。我剛發明它。這是一個問題嗎?對不起,我還不熟悉。 –