KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to write a UDP server in C (under Linux). I know that in the socket() function I must use SOCK_DGRAM and not SOCK_STREAM . if ( (list_s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0 ) { fprintf(stderr, "ERROR"); } But now, when I try to run the program (no errors in compiling), it says that there is an error in listen() . Here is the call to it: if (listen(list_s, 5) < 0) { fprintf(stderr, "ERROR IN LISTEN"); exit(EXIT_FAILURE); } Can you figure out what the problem is? This is the code: int list_s; /* listening socket */ int conn_s; /* connection socket */ short int port; /* port number */ struct sockaddr_in servaddr; /* socket address structure */ if ( (list_s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0 ) { fprintf(stderr, "ERROR\n"); } memset(&servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(port); if ( bind(list_s, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0 ) { fprintf(stderr, "ERROR IN BIND \n"); } if ( listen(list_s, 5) < 0 ) // AL POSTO DI 5 LISTENQ { fprintf(stderr, "ERROR IN LISTEN\n"); exit(EXIT_FAILURE); }
Tags (comma-separated)
Save Edits
Cancel