add: time display

This commit is contained in:
2025-10-29 09:39:02 -05:00
parent 295e3dd9be
commit e67dcbb34b

View File

@ -11,7 +11,7 @@
#include <arpa/inet.h>
#include <unistd.h>
#include <fcntl.h>
#include <time.h>
#include <sys/time.h>
void print_err(const char *format, ...)
{
@ -155,8 +155,6 @@ int main(int ac, char **av)
dest.sin_port = htons(0);
inet_pton(AF_INET, "8.8.8.8", &dest.sin_addr);
while (1) {
char *packet = create_packet(payload_size);
if (packet == NULL)
{
@ -164,15 +162,6 @@ int main(int ac, char **av)
return 2;
}
if (sendto(sockfd, packet, packet_size, 0, (struct sockaddr *) &dest, sizeof(dest)) == -1)
{
print_err("error: send packet failed.");
free(packet);
close(sockfd);
return 2;
}
printf("icmp request sent\n");
char *buffer;
buffer = malloc(packet_size * sizeof(char));
if (buffer == NULL)
@ -185,6 +174,20 @@ int main(int ac, char **av)
struct sockaddr_in sender;
socklen_t len = sizeof(sender);
while (1) {
struct timeval stop, start;
gettimeofday(&start, NULL);
if (sendto(sockfd, packet, packet_size, 0, (struct sockaddr *) &dest, sizeof(dest)) == -1)
{
print_err("error: send packet failed.");
free(packet);
close(sockfd);
return 2;
}
printf("icmp request sent\n");
do
{
if (recvfrom(sockfd, buffer, packet_size, 0, (struct sockaddr *) &sender, &len) < 0)
@ -195,10 +198,17 @@ int main(int ac, char **av)
free(packet);
return 3;
}
gettimeofday(&stop, NULL);
}
while (len == packet_size && packet_check(buffer, packet_size) == 0 && pktcmp(packet, buffer, packet_size) == 0);
free(packet);
printf("icmp reply received\n");
double time_interval = ((stop.tv_sec - start.tv_sec) * 1000 + (stop.tv_usec - start.tv_usec)) / 1000;
printf("icmp reply received %fms\n", time_interval);
sleep(1);
update_packet(packet, payload_size);
}
free(packet);
free(buffer);
}