begin process at 2012 05 27 14:48:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > SE CONNECTER A UN SERVEUR SOUS WINDOWS ET UTILISE WSAASYNCSELECT

SE CONNECTER A UN SERVEUR SOUS WINDOWS ET UTILISE WSAASYNCSELECT


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Niveau :Initié Date de création :25/07/2002 Date de mise à jour :25/07/2002 15:22:58 Vu :6 728

Auteur : ZeRiFlo

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Voici une fonction qui permet de se connecte a un serveur et vérifier ensuite l'état de la socket lors qu'un msg dans la fonction callback. Indispensable pour coder une socket en win32
La fonction callback de la fenetre ayant l'handle que vous avez entrer recevra le msg lors de l'arrivé d'un msg

Source

  • #include <windows.h>
  • #include <winsock.h>
  • #define C_BON 1
  • #define ERR_CONNECT 10
  • #define ERR_CREATION_SOCKET 17
  • int Connection(SOCKET *s, SOCKADDR_IN *info, char adresse[], int port, unsigned int msg, HWND Hwnd) {
  • int err;
  • struct hostent *host;
  • info->sin_family = PF_INET;
  • info->sin_port = htons(port);
  • info->sin_addr.s_addr = inet_addr(adresse);
  • if (info->sin_addr.s_addr = -1)
  • { host = gethostbyname(adresse);
  • memcpy((char *)&info->sin_addr.s_addr, host->h_addr, host->h_length);
  • }
  • if ((*s = socket(PF_INET, SOCK_STREAM, 0)) == -1)
  • {
  • return ERR_CREATION_SOCKET;
  • }
  • if ((err = connect(*s, (struct sockaddr *)info, sizeof(*info))) == -1)
  • {
  • return ERR_CONNECT;
  • } else
  • {
  • WSAAsyncSelect(*s , Hwnd, msg, FD_READ);
  • return C_BON;
  • }
  • }
#include <windows.h>
#include <winsock.h>

#define C_BON 1

#define ERR_CONNECT 10
#define ERR_CREATION_SOCKET 17

int Connection(SOCKET *s, SOCKADDR_IN *info, char adresse[], int port, unsigned int msg, HWND Hwnd) {
int err;
struct hostent *host;

info->sin_family = PF_INET;
info->sin_port = htons(port);
info->sin_addr.s_addr = inet_addr(adresse);

if (info->sin_addr.s_addr = -1)
   { host = gethostbyname(adresse);
     memcpy((char *)&info->sin_addr.s_addr, host->h_addr, host->h_length);
   }
if ((*s = socket(PF_INET, SOCK_STREAM, 0)) == -1)
   {
   return ERR_CREATION_SOCKET;
   }
if ((err = connect(*s, (struct sockaddr *)info, sizeof(*info))) == -1)
   {
   return ERR_CONNECT;
   } else
   {
   WSAAsyncSelect(*s , Hwnd, msg, FD_READ);
   return C_BON;
   }
}

 Conclusion

Marche sous VC++ 6.0 et DevC++


 Sources du même auteur

INITIALISER WINSOCK
FONCTION POUR CRÉER UN SERVEUR SOUS WIN ET NUX
FONCTION POUR CRÉER UN SERVEUR ET UTILISER WSAASYNCSELECT
FONCTION POUR SE CONNECTE A UN SERVEUR ( WINDOWS ET LINUX )

 Sources de la même categorie

Source avec Zip Source avec une capture MINI SERVEUR HTTP [WINDOWS] par ganjarasta
Source avec Zip Source avec une capture CLIENT DE TEST MODBUS TCP par brunovan
Source avec Zip Source avec une capture SCANIP [ARP / ICMP] par ganjarasta
Source avec Zip Source avec une capture TRACEROUTE [WINPCAP] par ganjarasta
Source avec Zip SERVEUR MULTITHREAD [LINUX/WIN] par nipepsinicolas

Commentaires et avis

Commentaire de lol55 le 22/11/2009 01:27:53 8/10

Merci pour cet exemple!

 Ajouter un commentaire




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 : 0,468 sec (3)

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