begin process at 2012 05 30 17:17:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

socket api


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

socket api

jeudi 2 mars 2006 à 02:15:41 | socket api

JoebarGlut

Salut,
Je m'esseye aux socket non bloquante en api win32 mais je bloque sur un point.
Pour mon serveur, mon WSAAsyncSelect fonctionne mais pour le client il y a quelque chose que je n'ai pas compris :
Entre le socket() et le connect() je fais ça :
WSAAsyncSelect(sock_client, hwnd, WM_SOCKET, FD_CONNECT | FD_CLOSE | FD_READ | FD_WRITE);
Si je le commente, mon connect() deviens bloquant mais se connecte impecablement au serveur.
Le truc c'est que j'aimerais passer par du non_bloquant pour gerer les FD_READ, FD_WRITE et FD_CLOSE sans passer par du thread.
Mais lorsque je décommente le WSAAsyncSelect, le connect() ne fonctionne plus. J'ai lu quelquepart que c'est parce qu'il n'as pas le temps de se connecter. J'ai alors esseyé de le mettre dans un while(!OK) avec FD_CONNECT: OK = 1 ; mais il ne se connecte toujours pas.
Que faire pour que mon connect() fonctionne ?
merci
jeudi 2 mars 2006 à 08:32:51 | Re : socket api

anonyme_man_in_this_world

salut, essaie de te connecter puis rend ta socket non-bloquante avec WSAAsyncSelect().
jeudi 2 mars 2006 à 09:50:09 | Re : socket api

aardman

Membre Club
Réponse acceptée !
Salut,
Avec le WSAAsyncSelect(), connect() va échouer avec l'erreur WSAEWOULDBLOCK (ce qui est normal puisqu'il est bloquant), et lorsque la connection sera établie, tu recevra l'event FD_CONNECT.
jeudi 2 mars 2006 à 12:14:51 | Re : socket api

JoebarGlut

Ah ok !!! Je ne m'attendais pas à ce que cette erreur soit normale et j'avais un exit(-1) dans mon traitement d'erreur de la connect() alors forcément :D
C'est bizare comme truc, ils auraient pu retourner une socket speciale qui voudrais dire que le connect() a fonctionné mais qu'il est non bloquant du genre 65535 parceque la on a l'impression que le connect a échoué.
Merci !!

Bon maintenant par contre il m'envois FD_CONNECT meme quand y'a pas de serveur mais j'ai pas encore cherché... je verrai ça lundi !
jeudi 2 mars 2006 à 12:32:05 | Re : socket api

aardman

Membre Club
Réponse acceptée !
Salut,
Lorsque connect retourne SOCKET_ERROR il faut appeler WSAGetLastError(), et si  WSAGetLastError() != WSAEWOULDBLOCK, alors tu es sur qu'il y a une vrai erreur.
Ensuite, le FD_CONNECT est toujours envoyé, et pour savoir si l'operation a reussi ou pas, il faut regarder le numéro de l'erreur qui se trouve dans HIWORD(lParam) a la reception du message.


jeudi 2 mars 2006 à 12:47:54 | Re : socket api

JoebarGlut

J'ai tout compris merci à toi :)


Cette discussion est classée dans : socket, api, connect, fd, wsaasyncselect


Répondre à ce message

Sujets en rapport avec ce message

Socket [ par casper_2 ] Rebonjour,jaimerais savoit,koment pourrai-je me reconecter automatiquement au serveur.ex:je lance mon programme sans ouvrir ma connexion internet.10 s prob wsaasyncselect (encore) [ par flatou ] je suis tjr ds la prog d'un client/serveur, et pour le serveur j'ai comme un prob que je n'arrive pas a resoudre.Au lancement de mon serveur, j'ai cet socket sans fenêtre [ par CyberP ] Comment faire (avec exemple concret si possible) pour recevoir des messages de sockets (fd_recv, fd_connect, fd_accept) sans avoir de fenêtre (et sans Probleme socket en telnet [ par tigood42 ] Bonjour,je suis en train d'apprendre le fonctionnement des sockets... J'ai créé un serveur qui accepte les multiconnexions simultanément (et bientot a P2P avec WSAasyncselect [ par JoebarGlut ] Salut,je suis en train de realiser un petit systeme p2p et pour ca j'ai un serveur dedié DS, un client C1 et un client C2 qui ont le meme code.C1 et C gestion des event avec WSANETWORKEVENTS [ par Spiffou ] bonjour à tous,je voudrais votre avis sur la gestion des evenements sur les sockets.je réalise une application (un jeu) qui doit communiquer sur un ré passage de structure a un thread [ par anthonycosson ] bijour tout le monde g un pb qui me blocje voudrai savoir comment passer une structure a AfxBeginThread et récupéré les donner précédement enregistrer Socket qui coupe la connection immédiatement [ par trafounet ] Bonjour à tous,j'ai un petit problème avec les sockets, je veux créer un serveur, mais lorsque un client essaye de se connecter, la connection est acc Sockets-Utilisation de WSAAsyncSelect [ par lektrosonic ] Bonjour, je travaille sur les sockets et je developpe deux applications (client-serveur). J'ai etabli la fonction WSAAsyncSelect avec les attributs: F Combiner APi et socket [ par Slown ] Bonjour. Je voulais savoir si c'etait possible de combiner un programme sur les sockets et un programme API. En gros, si je copie mon code a l'interie


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,655 sec (4)

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