#define DEFAULT_SERVER_LISTEN_PORT 43210
#define DEFAULT_SERVER_HOST "localhost"
-#define DATA_SIZE 120
+#define PACKET_PAYLOAD_SIZE 120
#define PACKET_INDEX_SIZE sizeof(unsigned long long)
#define PACKET_TIMESPEC_SIZE sizeof(time_t)
+#define PACKET_SIZE (PACKET_PAYLOAD_SIZE + PACKET_INDEX_SIZE + PACKET_TIMESPEC_SIZE)
#define TIMER_FREQUENCY_SECS 1
#define CLOCKID CLOCK_REALTIME
#define SIG SIGRTMIN
-static char data[DATA_SIZE + PACKET_INDEX_SIZE + PACKET_TIMESPEC_SIZE];
+static char data[PACKET_SIZE];
/* connection socket */
static int connectfd;
srand(time(NULL));
- for (i = 0; i < DATA_SIZE-1; i++)
+ for (i = 0; i < PACKET_PAYLOAD_SIZE-2; i++)
data[i] = (char) (rand() % 26) + 'a';
data[i] = '\0';
}
curr_time_secs = time(NULL);
- ptr = data + DATA_SIZE;
+ ptr = data + PACKET_PAYLOAD_SIZE;
* (unsigned long long *) ptr = index;
ptr += PACKET_INDEX_SIZE;
* (time_t *) ptr = curr_time_secs;
index++;
+ printf("curr_time_secs: %lu, index: %llu\n", curr_time_secs, index);
}
static ssize_t send_buffer(int sockfd)
{
- return send(sockfd, data, DATA_SIZE, 0);
+ return send(sockfd, data, PACKET_SIZE, 0);
}
static void timer_handler(int sig, siginfo_t *si, void *uc)
DIE(rc < 0, "sigaction");
/* Block timer signal temporarily */
- printf("Blocking signal %d\n", SIG);
sigemptyset(&mask);
sigaddset(&mask, SIG);
rc = sigprocmask(SIG_SETMASK, &mask, NULL);
sigsuspend(&mask);
}
- printf("\n--- data sent!\n");
-
close(connectfd);
return 0;
#define DEFAULT_SERVER_LISTEN_PORT 43210
#define SERVER_BACKLOG 5
-#define DATA_SIZE 120
+#define PACKET_PAYLOAD_SIZE 120
#define PACKET_INDEX_SIZE sizeof(unsigned long long)
#define PACKET_TIMESPEC_SIZE sizeof(time_t)
+#define PACKET_SIZE (PACKET_PAYLOAD_SIZE + PACKET_INDEX_SIZE + PACKET_TIMESPEC_SIZE)
-
-static char data[DATA_SIZE];
+static char data[PACKET_SIZE];
static ssize_t receive_buffer(int sockfd)
{
- return recv(sockfd, data, DATA_SIZE, 0);
+ return recv(sockfd, data, PACKET_SIZE, 0);
}
static void print_buffer(void)
curr_time_secs = time(NULL);
- ptr = data + DATA_SIZE;
+ ptr = data + PACKET_PAYLOAD_SIZE;
index = * (unsigned long long *) ptr;
ptr += PACKET_INDEX_SIZE;
sender_time_secs = * (time_t *) ptr;
+ printf("curr_time_secs: %lu, sender_time_secs: %lu\n",
+ curr_time_secs, sender_time_secs);
+
printf("received packet index %llu, ", index);
if (sender_time_secs > curr_time_secs)
printf("negative latency (weird)\n");