another question about time()
Abby (J.P.)
the.ueabraham at laposte.net
Wed Apr 26 13:09:05 PDT 2006
Hello, I'm trying to make a ping utility, I made a working ICMP request
(I tested it with Ethereal, I get a reply from the server). But I wonder
how much precise are the std.c.time.time() or the std.date.time(),
because I always find a ping of 0ms (I know that it must be 1000 ticks
per seconds, but I'm not sure, this really is).
Here is my code :
char[] host = "www.microsoft.com"
InternetHost targetHost;
targetHost.getHostByName(host);
InternetAddress targetAddress = new
InternetAddress(targetHost.addrList[0], InternetAddress.PORT_ANY);
Socket pingingSocket = new Socket(AddressFamily.INET, SocketType.RAW,
ProtocolType.ICMP);
//pingingSocket.connect(targetAddress);
//long start_time = getUTCtime();
int start_time;
std.c.time.time(&start_time);
pingingSocket.sendTo(PING_REQUEST, targetAddress);
char[] response;
pingingSocket.receive(response);
//long end_time = getUTCtime();
int end_time;
std.c.time.time(&end_time);
// char [] str_ping = std.string.toString((end_time - start_time));
char [] str_ping = std.string.toString((end_time - start_time)/2);
pingingSocket.close();
printf("ping : " ~ str_ping);
As you can see, I tried both std.c.time and std.date functions, but
str_ping is always 0. Did I done something wrong ? Should I put the
start_time before the resolving getHostByName() ?
--
Abby
More information about the Digitalmars-d-learn
mailing list