Pb avec

Résolu
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 - 24 févr. 2008 à 20:50
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 - 26 févr. 2008 à 19:28
Je suis en train d'essayer de creer un serveur avec Winsock en m'aidant de:
http://msdn2.microsoft.com/en-us/library/ms738545(VS.85).aspx

mais a la page http://msdn2.microsoft.com/en-us/library/ms738545(VS.85).aspx
je n'arrive pas a compler ce qui est ecrit:
en effet, mon compilateur ( VC++ 6.0 ) n'a pas l'air de connaitre getaddrinfo(), freeaddrinfo()...

Pourtant je pense avoir mis le bon include et la bonne librairie :
#include <ws2tcpip.h> et WS2_32.lib

Merci de m'aider car la je suis vraiment bloqué !

______________________
Adeon, programmeur de jeux sur directX 9 (http://gorygems.com/2.html) a votre service !

10 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
25 févr. 2008 à 10:55
Salut,

Pourquoi tu n'utilises pas plutot la version Express de Visual Studio 2008 qui est gratuite ?
Au moins tu seras sure d'avoir les mêmes lib que la plupart des personne de ce site, ce qui te facilitera d'autant plus le dev. Sans compter les performances du compilo qui sont tout autre.

Shell
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
25 févr. 2008 à 20:11
La version payante est plus complète avec des utilitaires en plus, la PSDK installé par défaut etc. etc.

La version express est plus légère. Elle n'inclue pas d'utilitaires en plus, la PSDK n'est pas installé, on a MSDN en version express etc. Cependant, elle permet quand même de faire du développement natif. Pour ça, il suffit de la compléter avec la PSDK.
Pour tout configurer correctement:
http://www.cppfrance.com/code.aspx?id=38359

C++ (@++)<!--
3
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
24 févr. 2008 à 21:17
#include <winsock2.h>
0
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
24 févr. 2008 à 21:22
dsl j'avai oublié de le dire mais je l'avai inclus aussi.

voila mon entete :

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

______________________
Adeon, programmeur de jeux sur directX 9 (http://gorygems.com/2.html) a votre service !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
24 févr. 2008 à 21:28
et pour etre un peu plus precis, voila mon bout de code et les erreurs :

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

int main() {
    struct addrinfo *result NULL,*ptr NULL,hints;

    ZeroMemory( &hints, sizeof(hints) );
    hints.ai_family = AF_INET;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_protocol = IPPROTO_TCP;
    hints.ai_flags = AI_PASSIVE;

    // Resolve the local address and port to be used by the server
    int iResult = getaddrinfo(NULL, DEFAULT_PORT, &hints, &result);
    if ( iResult != 0 ) { printf("getaddrinfo failed: %d\n", iResult); WSACleanup(); return 1; }

return 0;
}

ERREURS :
'hints' uses undefined struct 'addrinfo'
left of '.ai_family' must have class/struct/union type
left of '.ai_socktype' must have class/struct/union type
left of '.ai_protocol' must have class/struct/union type
left of '.ai_flags' must have class/struct/union type
'AI_PASSIVE' : undeclared identifier
'getaddrinfo' : undeclared identifier
'DEFAULT_PORT' : undeclared identifier

Voila
______________________
Adeon, programmeur de jeux sur directX 9 (http://gorygems.com/2.html) a votre service !
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
24 févr. 2008 à 21:56
Oue, je sais pas trop surtout que tu trouveras ca dans le fichier ws2tcpip.h:
typedef struct addrinfo
{
    int                 ai_flags;       // AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST
    int                 ai_family;      // PF_xxx
    int                 ai_socktype;    // SOCK_xxx
    int                 ai_protocol;    // 0 or IPPROTO_xxx for IPv4 and IPv6
    size_t              ai_addrlen;     // Length of ai_addr
    char *              ai_canonname;   // Canonical name for nodename
    struct sockaddr *   ai_addr;        // Binary address
    struct addrinfo *   ai_next;        // Next structure in linked list
}
ADDRINFOA, *PADDRINFOA;

Essai d'utiliser "ADDRINFOA" au lieu de "struct addrinfo" ou essai de comprendre pourquoi il accède pas à la définition.
0
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
24 févr. 2008 à 22:04
bisard, on a pas le meme ws2tcpip.h

voila l'entete du mien :

/*   
**    WS2TCPIP.H - WinSock2 Extension for TCP/IP protocols
**
**    This file contains TCP/IP specific information for use
**    by WinSock2 compatible applications.
**
**    To provide the backward compatibility, all the TCP/IP 
**    specific definitions that were included in the WINSOCK.H
**     file are now included in WINSOCK2.H file. WS2TCPIP.H
**    file includes only the definitions  introduced in the
**    "WinSock 2 Protocol-Specific Annex" document.
**
**    Rev 0.3    Nov 13, 1995
**      Rev 0.4    Dec 15, 1996
*/

merci ^^

______________________
Adeon, programmeur de jeux sur directX 9 (http://gorygems.com/2.html) a votre service !
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
25 févr. 2008 à 13:22
J'ai la meme entete.
Ligne 437 du fichier, j'ai la définition de la structure.
0
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
25 févr. 2008 à 19:03
OK pour Express de Visual Studio 2008 ^^
c'est vrais que c'est pas mal !
Bon va faloir m'habituer a ce nouveau compilateur, je m'etais habitué a mon bon vieux VC++ 6.0 depuis 5ans moi ! ^^

Mais je comprends pas, quelle est la différence entre la version payante et la version gratuite ?

Merci en tout cas de vos réponses !

______________________
Adeon, programmeur de jeux sur directX 9 (http://gorygems.com/2.html) a votre service !
0
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
26 févr. 2008 à 19:28
ok jcomprend mieu

merci a tous
______________________
Adeon, programmeur de jeux sur directX 9 (http://gorygems.com/2.html) a votre service !
0
Rejoignez-nous