Jakariba
Messages postés4Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention25 mai 2006
-
24 mai 2006 à 14:38
excrt
Messages postés75Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 3 juillet 2006
-
26 mai 2006 à 17:06
Bonjour,
Dans une window form. j'essaie de me connecter à un serveur distant avec une adresse IP et un port spécifique, je n'ai inclu que winsock.h sans écrire de code, mais lors de la compilation j'ai 166 avertissements dans ce genre :
Jakariba
Messages postés4Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention25 mai 2006 25 mai 2006 à 17:50
Je n'ai plus d'erreur de compilation, je compile maintenant avec les lib et les include de Plateforme SDK.
Mais j'ai un autre problème, voici un bout de code que j'avais compilé sous Borland C++ Builder 2006, et tout était OK, j'essaie maintenant de le compiler sous Visual C++ 2005 et le compilateur ne reconnaît pas SOCKET, où est mon erreur ?
char
AdresseIP[]=
"10.10.6.100";
int
port=23;SOCKET sock;
//Et voila notre socket !(ce n'est rien d'autre qu'une var int)sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
WSADATA wsa;
//On est sous win, donc fo initialiser les wsa(pas la peine de savoir ce que c'est)WSAStartup(MAKEWORD(2,0),&wsa);
// on initialise wsa ici
SOCKADDR_IN sin;
//Structure ds laquelle on va stocker les parametres du socket
sin.sin_family=AF_INET;
//Ici, on dit qu'on veut un socket pour le netsin.sin_addr.s_addr=inet_addr(AdresseIP);
sin.sin_port=htons(port);
htons() convertit le port en un nombre utilisable par win
//On crée le socket ou du moins on l'initialise
sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
bind(sock,(SOCKADDR*)&sin,
sizeof(sin));
//On lie le socket à la structure sin pour définir ses parametres
//essaie de se connecter, connect ressemble étrangement à bind
if(connect(sock,(SOCKADDR*)&sin,
sizeof(sin)))
excrt
Messages postés75Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 3 juillet 2006 26 mai 2006 à 17:06
vérifie que <winsock2.h> est bien inclus dans ce fichier(ou ce trouve ce code), sinon, définie SOCKET
typedef u_int SOCKET; // « u_int » est définie dans <winsock2.h>
sous Windows, « SOCKET » est définie alors c'est probablement juste un problème d'include ...
regarde dans le fichier <winsock2.h> tu vas voir « SOCKET » en début de fichier
note: « port » doit être un entier non-signé 16bits, soit « unsigned short » ou encore « WORD » mais pas « int » ou encore « long » etc ...