Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3420 connectés 

 


Dernière réponse
Sujet : Socket C++
antsite Merci à vous tous (et surtout Amadeus :-))

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
antsite Merci à vous tous (et surtout Amadeus :-))
Amadeus Je retrouve pas le code mais le truc c d'utiliser WSAAsyncSelect pour slectionner la socket en mode async :
WSAAsyncSelect(soc, hWnd, WM_SOCKET_SELECT, FD_ACCEPT|FD_READ|FD_WRITE|FD_CLOSE);
/* hWnd est la fenetre qui recevra les msg
WM_SOCKET_SELECT est le msg lie a la sock (defini comme WM_USER+1 par ex)
le reste ce sont les msg qui seront recu */
Maintenant qd tu feras un send ou un recv il rendra tt de suite la main et a chaque ecriture il enverra FD_WRITE et a chaque lecture il enverra un FD_READ.
A toi de gerer tout ca...
Amadeus send et recv sont des fonctions bloquantes alors s'il envoie ou recoit un gros paquet de donnees, un transfert de fichier par ex, ca se fait pas d'un coup et le meilleur moyen de gerer ca cest les sockets asynchrones.
youdontcare j'oublie de préciser, c'est sur recv() qu'il faut boucler. tu as peut être confondu dans ton code.
youdontcare qu'envoies tu exactement ? send() envoie toutes les données d'un coup, pas besoin de boucler.
Amadeus Tu poses pas une question dont la reponse n'est pas rapide!  
Je suppose que tes sous win alors il te faut passer par les sock asynchrones : en gros tu selectionnes une socket en ecriture , lecture et connection asynchrones et elle enverra des msg FD_READ, FD_WRITE,... que tu pourras traiter comme n'importe quel evenement win. Si g le tps et que tas la patience je te retrouvera un ptit exemple :)
antsite Salut !
 
Je suis en train d'essayer de programmer en C++ les sockets.
Il y une chose que je n'arrive pas à résoudre :
je boucle plusieurs fois sur la fonction send() mais cela
n'envoie que la première fois, les autres fois, le destinataire
ne reçoit rien. Aucune erreur n'est renvoyéee par send() ou
recv().
Quelqu'un peut-il m'aider ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)