[C-ANSI] Création Socket

Création Socket [C-ANSI] - C - Programmation

Marsh Posté le 15-11-2006 à 21:04:36    

Bonjour,
 
J'essaie de coder un truc de base, c'est à dire, mettre une socket en écoute pour un serveur.
Je fais ca sous code::block avec winsock.h (puisque y a pas socket.h parmi les includes)
 
ca donne ca:
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include  <sys/types.h>
  4. #include  <winsock.h>
  5. int portServer; //port d'écoute de la socket
  6. int newSock; //notre socket
  7. void error(char *msg){
  8.     perror(msg);
  9.     exit(1);
  10. }
  11. int main(int argc,char *argv[]){
  12.     struct sockaddr_in servAddr;
  13.     if((portServer = atoi(argv[1])) <= 1024)
  14.         error("Ports lower than 1024 forbidden !" );
  15. //création d'une socket
  16. if((newSock = socket(AF_INET,SOCK_STREAM,0)) < 0)
  17.         error("can't create socket.." );
  18.     servAddr.sin_family = AF_INET;
  19.     servAddr.sin_addr.s_addr = INADDR_ANY;
  20.     servAddr.sin_port = htons(portServer);
  21.     //liaison avec le port
  22.     if(bind(newSock,(struct sockaddr *) &servAddr, sizeof(servAddr)) < 0)
  23.         error("can't bind socket.." );
  24.     listen(newSock,5);
  25. return 0;
  26. }


 
Le problème est qu'il refuse de me créer cette socket en me retournant une valeur inferieure à 0, il s'arrete à "can't create socket" et je vois pas pourquoi  :??:  :??:  
 
Si vous aviez une idée.. :)
 
Cdt,

Reply

Marsh Posté le 15-11-2006 à 21:04:36   

Reply

Marsh Posté le 15-11-2006 à 21:08:34    

paowz a écrit :

J'essaie de coder un truc de base, c'est à dire, mettre une socket en écoute pour un serveur.
Je fais ca sous code::block avec winsock.h (puisque y a pas socket.h parmi les includes)
<...>
Le problème est qu'il refuse de me créer cette socket en me retournant une valeur inferieure à 0, il s'arrete à "can't create socket" et je vois pas pourquoi  :??:  :??:  
 
Si vous aviez une idée...


Ben oui... Faut lire la doc... Je conseille winsock2...
 
Modeste initiation : http://mapage.noos.fr/emdel/reseaux.htm
 
Au fait, C-ANSI et 'sockets' ne vont pas ensemble. Au mieux, les sockets sont POSIX.1. Aucune trace dans le pavé qui définit le langage C.  
 
http://www.open-std.org/jtc1/sc22/ [...] /n1124.pdf
 
 


Message édité par Emmanuel Delahaye le 15-11-2006 à 21:11:47

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 15-11-2006 à 22:52:12    

Merci bien :)
 
En fait, il fallait prévenir win que le processus allait utiliser des sockets, contrairement à unix qui n'a pas besoin d'être prévenu.
Très bons liens, sinon ^^
 
Cdt,

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed