Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @file main.c
- * @brief Description
- * @date 2018-1-1
- * @author name of author
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <time.h>
- #include <inttypes.h>
- #include "debug.h"
- #include "memory.h"
- int main(int argc, char *argv[]){
- /* Disable warnings */
- (void)argc; (void)argv;
- /* Main code */
- DEBUG("Main is empty -- add code here");
- srand(time(NULL));
- uint32_t flips_result = 0;
- uint8_t num_flips = 6;
- for (uint8_t i = 0; i < num_flips; ++i) {
- int random_number = rand() % 2;
- if(random_number != 0){
- flips_result |= (1 << i);
- }
- }
- printf("flips_result: 0x%x\n", flips_result);
- for (uint8_t i = 0; i < num_flips; ++i) {
- if ((flips_result & (1 << i)) == 0) {
- printf("[%02hhu] Tails\n", i + 1);
- }else{
- printf("[%02hhu] Heads\n", i + 1);
- }
- }
- ssize_t udp_read_bytes, udp_sent_bytes;
- uint8_t number_of_flips = 10;
- if ((udp_sent_bytes = sendto(
- udp_client_socket,
- &number_of_flips,
- sizeof(number_of_flips),
- 0,
- (struct sockaddr *) &udp_server_endpoint,
- udp_server_endpoint_length)) == -1)
- ERROR(24, "Can't sendto server");
- printf("ok. (%d bytes sent)\n", (int)udp_sent_bytes);
- uint8_t received_number_of_flips = 0;
- if ((udp_read_bytes = recvfrom(
- udp_client_socket,
- &received_number_of_flips,
- sizeof(received_number_of_flips),
- 0,
- (struct sockaddr *) &udp_server_endpoint,
- &udp_server_endpoint_length)) == -1)
- ERROR(25, "Can't recvfrom server");
- printf("ok. (%d bytes received)\n", (int)udp_read_bytes);
- #define ERROR_CODE 0x00ffffff
- #define MIN_NUMBER_OF_FLIPS 1
- #define MAX_NUMBER_OF_FLIPS 16
- if (received_number_of_flips < MIN_NUMBER_OF_FLIPS ||
- received_number_of_flips > MAX_NUMBER_OF_FLIPS)
- {
- uint32_t error_code = ERROR_CODE;
- if (flips_result == ERROR_CODE)
- {
- fprintf(stderr, "Number of flips not supported\n");
- exit(10);
- }
- }
- while(1){
- recvfrom
- sendto
- }
- close(socket)
- uint32_t flips_results_send = flips_result;
- flips_results_send = htonl(flips_results_send);
- if ((udp_sent_bytes = sendto(
- udp_client_socket,
- &flips_results_send,
- sizeof(flips_results_send),
- 0,
- (struct sockaddr *) &udp_server_endpoint,
- udp_server_endpoint_length)) == -1)
- ERROR(24, "Can't sendto server");
- printf("ok. (%d bytes sent)\n", (int)udp_sent_bytes);
- uint32_t received_flips_result = 0;
- if ((udp_read_bytes = recvfrom(
- udp_client_socket,
- &received_flips_result,
- sizeof(received_flips_result),
- 0,
- (struct sockaddr *) &udp_server_endpoint,
- &udp_server_endpoint_length)) == -1)
- ERROR(25, "Can't recvfrom server");
- printf("ok. (%d bytes received)\n", (int)udp_read_bytes);
- received_flips_result = ntohl(received_flips_result);
- printf("%u\n", received_flips_result);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement