Frage

I am making a server in C, but when I want to listen for connections, listen returns -1 and I don't why. The sockets are created without any problem, the port is assigned, but even though listen gives me an error. Does anybody have a clue? I post the code below. Thank you in advance.

 if((UDP_socket = socket(AF_INET, SOCK_DGRAM,0)) > 0){
    fprintf(stdout,"socket created\n");
  }

  bzero((char*)&addrUDP, sizeof(struct sockaddr_in));
  addrUDP.sin_family = AF_INET;
  addrUDP.sin_port = htons(0);


 if(bind(UDP_socket,(struct sockaddr*)&addrUDP, sizeof(struct sockaddr_in))<0){
   fprintf(stdout,"asign port UDP Error\n");
   close(UDP_socket); exit(1);
 }
 fprintf(stdout,"Assign port UDP OK \n");

 bzero((char*)&addrUDP, sizeof(struct sockaddr_in));

 TCP_socket = socket(AF_INET, SOCK_DGRAM, 0);
 if(TCP_socket < 0){
   fprintf(stdout,"Socket TCP Error\n");
   exit(1);
 }
 fprintf(stdout,"Socket TCP OK\n");

 bzero((char *)&addrTCP, sizeof(struct sockaddr_in));
 addrTCP.sin_family = AF_INET;
 addrTCP.sin_port = htons(0);

 if(bind(TCP_socket,(struct sockaddr*)&addrTCP, sizeof(struct sockaddr_in))<0){
   fprintf(stdout,"Assign server port TCP  ERROR\n");
   exit(1);
 }
 fprintf(stdout,"Assign server port TCP OK\n");

 int listening;
 listening = listen(TCP_socket, 1024);

 if(listening < 0){
   fprintf(stdout,"Listening ERROR\n");
   exit(1);
 }else{
   fprintf(stdout,"Listening OK\n");
 }
War es hilfreich?

Lösung

TCP_socket = socket(AF_INET, SOCK_DGRAM, 0);

You want SOCK_STREAM.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top