Wireshark Capture

210301_get.pcapng

Code Implementation

// make tcp connection
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
	perror("sock creation failed\\n");
}
struct sockaddr_in servaddr;
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = inet_addr(g_get_dest_ip);
servaddr.sin_port = htons(g_get_dest_port_start);
if (connect(sock, (struct sockaddr *)&servaddr, sizeof(servaddr)) != 0) {
	perror("connect failed\\n");
}
while (1) {
	// wait a second
	if (g_get_num_generated_in_sec >= g_get_request_per_sec) {
		pthread_cond_wait(&g_get_cond, &g_get_mutex);
	}
	// time checking
	time_check(&g_get_mutex, &g_get_cond, &g_get_before_time, &g_get_now_time, &g_get_num_generated_in_sec);
	// send packet
	send(sock, g_get_request_msg, strlen(g_get_request_msg), 0);
	//printf("%lu Get msg sent\\n", g_get_num_generated_in_sec);
	
}

How it works