int create_sock(prot_params_t param_srv, char * hostname){ struct sockaddr_in sa; int sockfd; if(param_srv.type == sock_tcp){ sockfd=h_socket(AF_INET, SOCK_STREAM); adr_socket(param_srv.port, hostname, "tcp", &sa ,SERVEUR); h_bind(sockfd, &sa); return sockfd; }else if(param_srv.type==sock_udp){ sockfd=h_socket(AF_INET, SOCK_DGRAM); adr_socket(param_srv.port, hostname, "udp", &sa, SERVEUR); h_bind(sockfd, &sa); return sockfd; } return -1; }
static void test_wrong_bit_length(void) { HParseResult *r; HParser *p; p = h_right(h_ch('a'), h_ch('b')); r = h_parse(p, (const uint8_t *)"ab", 2); g_check_cmp_int64(r->bit_length, ==, 16); h_parse_result_free(r); p = h_bind(h_ch('a'), k_test_wrong_bit_length, NULL); r = h_parse(p, (const uint8_t *)"ab", 2); g_check_cmp_int64(r->bit_length, ==, 16); h_parse_result_free(r); }
void serveur_appli(char *service, char *protocole) /* Procedure correspondant au traitemnt du serveur de votre application */ { /* A completer ... */ struct sockaddr_in adr_interne; int taille=100, lg_message=100, num_socket; char *message; struct sockaddr_in adr_distante; message=(char*)malloc(taille* sizeof(char)); num_socket=h_socket(AF_INET,SOCK_DGRAM); adr_socket(service,"localhost","udp",&adr_interne, SERVEUR); h_bind(num_socket,&adr_interne); for(;;) { lg_message=h_recvfrom(num_socket, message, taille, &adr_distante); printf("%d %s\n",lg_message,message); h_sendto(num_socket, message, lg_message, &adr_distante); } h_close(num_socket); }