begin process at 2012 05 29 17:26:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

Probleme-> winsock2.h : Aucun fichier ou répertoire de ce type


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme-> winsock2.h : Aucun fichier ou répertoire de ce type

vendredi 10 octobre 2008 à 17:57:27 | Probleme-> winsock2.h : Aucun fichier ou répertoire de ce type

emine88

Salut à tous
j'essaye de realiser un programme serveur/client en C++ sous Linux avec Kdevelop ,mon probleme est: au cours de la compilation sous console j'ai le message suivant :  " erreur: winsock2.h : Aucun fichier ou répertoire de ce type "
code source:

#include<stdio.h>
#include<winsock2.h>

void main()
{
int s;
sockaddr_in sa;
char buffer[255];
//creation de la socket
s=socket(AF_INET,SOCK_STREAM,0);
sa.sin.family=AF_INET;
sa.sin.port=hton(7777);
sa.sin_addr.s_addr=inet_addr("127.0.0.1");

//demande de connection au serveur
connect(s,(sockaddr*)&sa,sizeof(sa));

printf(" entrer un message \n ");
scanf("%s",buffer);

send(s,buffer,sizeof(buffer),0);
printf("message envoyé \n ");

closesocket(s);
}


sous conole :

[root@localhost TP 1]# gcc -o tcp-c client-tcp.c
client-tcp.c:3:21: erreur: winsock2.h : Aucun fichier ou répertoire de ce type
client-tcp.c: In function 'main':
client-tcp.c:8: erreur: 'sockaddr_in' undeclared (first use in this function)
client-tcp.c:8: erreur: (Each undeclared identifier is reported only once
client-tcp.c:8: erreur: for each function it appears in.)
client-tcp.c:8: erreur: expected ';' before 'sa'
client-tcp.c:11: erreur: 'AF_INET' undeclared (first use in this function)
client-tcp.c:11: erreur: 'SOCK_STREAM' undeclared (first use in this function)
client-tcp.c:12: erreur: 'sa' undeclared (first use in this function)
client-tcp.c:17: erreur: 'sockaddr' undeclared (first use in this function)
client-tcp.c:17: erreur: expected expression before ')' token
client-tcp.c:6: attention : return type of 'main' is not 'int'


  -comment je peut ajouter la bibliotheque winsock2.h
merci pour votre aide ! (y) ;)
vendredi 10 octobre 2008 à 19:37:25 | Re : Probleme-> winsock2.h : Aucun fichier ou répertoire de ce type

rt15

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Bienvenue !

Dans winsock, il y a win... Win ne te dis rien ?
Il est pourtant dans windows !

Bref, remplace ton include de winsock2.h par une include de socket.h.

Tu peux faire de la compilation conditionnelle si tu veux rendre le code portable.

Attention : il y a quelques différences entre les différents headers de socket... Autrement dit, tu risques d'avoir quand même des erreurs à la compilation. Mais tu pourras les corriger.

samedi 11 octobre 2008 à 00:25:16 | Re : Probleme-> winsock2.h : Aucun fichier ou répertoire de ce type

emine88

oui merci
j'ai remplacer  <winsock2.h> par <sys/socket.h> ,quelques erreurs sont apparu mais je les corrigées :
nouveau code source:

#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>

int  main()
{
int s;
struct sockaddr_in sa;
char buffer[255];
//creation de la socket
s=socket(AF_INET,SOCK_STREAM,0);
sa.sin_family=AF_INET;
sa.sin_port=htons(7777);
sa.sin_addr.s_addr=inet_addr("127.0.0.1");

//demande de connection au serveur
connect(s,(struct sockaddr*)&sa,sizeof(sa));

printf(" entrer un message \n ");
scanf("%s",buffer);
send(s,buffer,sizeof(buffer),0);
printf("message envoyé \n ");

//closesocket(s);
return 0;
}

le program fonctionne correctement ! merci bien ?
mais juste je veux savoire le rôle de la bibliotheque <netinet/in.h> ,si je compile sans cette bibliotheque je trouve:

[root@localhost TP 1]# gcc -o tcp-c client-tcp.c
client-tcp.c: In function 'main':
client-tcp.c:8: erreur: storage size of 'sa' isn't known
[root@localhost TP 1]#

est ce que vous avez une explication plus détaillé ou plus profesionnelle et pour cette bibliotheque quelle est sont rôle ?
merci de mexplique je suis debutant en linux ! ;)

lundi 13 octobre 2008 à 10:44:10 | Re : Probleme-> winsock2.h : Aucun fichier ou répertoire de ce type

rt15

Membre Club Administrateur CodeS-SourceS
On ne parle pas vraiment de bibliothèque quand on parle d'un .h. Une bibliothèque c'est souvent plus gros. On parle plutôt de header, ou de fichier d'en-tête en français.

Ici :
struct sockaddr_in sa;

Tu déclares une structure de type sockaddr_in qui s'appelle sa.

Il se trouve que le header in.h du répertoire netinet contient la définition de ce type :


/* Structure describing an Internet socket address.  */
struct sockaddr_in
  {
    __SOCKADDR_COMMON (sin_);
    in_port_t sin_port; /* Port number.  */
    struct in_addr sin_addr; /* Internet address.  */

    /* Pad to size of `struct sockaddr'.  */
    unsigned char sin_zero[sizeof (struct sockaddr) -
   __SOCKADDR_COMMON_SIZE -
   sizeof (in_port_t) -
   sizeof (struct in_addr)];
  };

Si tu n'inclus pas ce header, le compilateur ne connais pas le type sockaddr_in et ne peut donc pas compiler ton programme.

Outre le type sockaddr_in, in.h contient des information diverses concernant les sockets, telles que les principaux ports, par exemple :
 IPPORT_TELNET = 23,

La taille sur laquelle est codée un numéro de port :
typedef uint16_t in_port_t;
(Les ports vont de 0 à 65535).

La taille représentant les adresses IP :
typedef uint32_t in_addr_t;
(Les adresses IP, représentée XXXX.XXXX.XXXX.XXXX sont codées sur 4 octets).

Je ne crois pas que le reste soit souvent utilisé, notamment la partie IPv6 (Presque tout le monde est encore en IPv4 à l'heure actuelle).


Cette discussion est classée dans : function, erreur, client, in, tcp


Répondre à ce message

Sujets en rapport avec ce message

Erreur en C [ par lildan ] Bonjour,j'ai une erreur dans un programme en C que je compile avec DJGPP et c'est le suivant: In function main: incompatible implicit declaration of b exemple de code TCP Pull et push d'un serveur d'image [ par joserivo ] Tout est dans le titre.Il s'agit de l'ecriture en C++ du protocole TCP Push et TCP Pull pour acceder à un serveur multimedia.Pour detailer ces protoco édition des liens C et C++ avec GCC [ par ol49 ] Bonjour, je développe un petit programme sous linux en utilisant le compilateur gcc. Tant que je compilais du C tout allait bien. Les classes c++ Client serveur TCP, pb multi Thread [ par valoue ] Bonjour, Voilà, je suis en train de développer un client serveur en C++ (sous VC++ .net).Pour le moment, j'ai créé le serveur et le client, ils marche Client/Server TCp_IP en temps reel [ par virlix ] Bonjour tout le monde.Je suis actuellement en train de programmer sous un OS Realtime.J'aimerai y developper une server TCP_IP avec un client qui vien Serveur TCP multi-client [ par meech ] Bonjour,Je me suis attelé au développement d'un serveur TCP (extensible à divers protocoles) sous Win32 en C.Concrètement, je souhaiterais connaitre l problème serveur TCP en C [ par lenneth666 ] Bonjour j'ai essayé de faire un client server TCP en C mais mon serveur bloque a l'instruction suivante : client_socket = accept( ma_socket,(struct comment interpreter le essage d'erreur "error: stray '\160' in program" ?? [ par titoune85 ] Bonjour à tous heureux développeurs et dveloppeuses !Je débute en langage C dans le cadre de mes études. Actuellement j'essaye de développer un petit Boucle de connection client TCP [ par ssmint ] Bonjour à tous,Mon dernier souci en date est de pouvoir créer une un client qui essaie de se connecter toutes les secondes.Je fais donc une boucle ave Serveur tcp [ par petitchech ] Bonjour,Je voudrai faire un serveur qui jere plusieurs client.Comment faire pour recuperé se qu'envoi tous les client connectés ?


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,928 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales