Sockets-Utilisation de WSAAsyncSelect

Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013
- - Dernière réponse : yoyo269
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
- 17 janv. 2007 à 21:34
Bonjour, je travaille sur les sockets et je developpe deux applications (client-serveur).


J'ai etabli la fonction WSAAsyncSelect avec les attributs:

FD_WRITE|FD_ACCEPT|FD_READ|FD_CLOSE pour le serveur, et

FD_WRITE|FD_READ|FD_CONNECT|FD_CLOSE pour le client.


Ma question est: le message FD_WRITE a quoi sert-il exactement ?

Quelqun m'avais dit que quand j'envoi une donnee x avec send(), des que
toute la donnee est bien recu par le recepteur, un message FD_WRITE est
genere. Et bien j'ai esseye mais aucun message FD_WRITE est genere
apres un send.

Juste apres que la connection soit etablie, je recoie un FD_WRITE, mais
pas apres un send(). Je voudrais savoir a qoi sert FD_WRITE, et comment
l-utiliser svp.


Enfaite je souhaite connaitre FD_WRITE, pour pouvoir envoyer plusieurs
send() consecutifs..par exemple lors d'un envoi de fichier.


Merci d'avance

l3KTr0 Was HeRe
Afficher la suite 

8 réponses

Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
0
Merci
Salut lektronic !

Si tu veux faire plusieurs send à la suite il suffit de voir ce que te retourne le send.
S'il te renvoie SOCKET_ERROR c'est qu'il y a eu une erreur.

PS : documente toi un peu avant de poser 50000 questions sur des sujets similaires (MSDN avec Google).

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Commenter la réponse de yoyo269
Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
Certe, je n ai pas verifie..mais en tout cas le serveur recoit bien les donnes...
Et, j'ai cherche en tout cas, et ma dit ce que j'ai ecrit dans le post.

l3KTr0 Was HeRe
Commenter la réponse de lektrosonic
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
0
Merci
J'ai pas compris la dernière phrase !
Tu as eu le temps de tester ce que je t'ai dit ?

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Commenter la réponse de yoyo269
Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
Nan je n'ai pas compris..lol aparament j'ai pas de 'parachute' ...

l3KTr0 Was HeRe
Commenter la réponse de lektrosonic
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
0
Merci
lol ! C'est pas une question de parachute là je pense !
J'ai sans doute pas super bien expliqué.
Voilà un petit exemple (qui vaut ce qu'il vaut ) pour l'envoi d'un fichier :

// tu ouvres ton fichier

NbOctEnv = 0; // on initialise le nombre d'octets envoyés
while((TailleTrame = fread(&Buffer, 1, TAILLEBUFFER, Fichier)))
{
        while(send(Socket, Buffer, TailleTrame, 0) == SOCKET_ERROR);
        NbOctEnv += TailleTrame;
}

// tu fermes ton fichier

Si tu veux voir un exemple plus concret, regarde ma source appelée ESIP Messenger. (et hop un peu de pub ! )

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Commenter la réponse de yoyo269
Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
Ok, merci bien

l3KTr0 Was HeRe
Commenter la réponse de lektrosonic
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
0
Merci
Salut,
Je suis content de voir que mes posts ne servent à rien.
Commenter la réponse de cs_aardman
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
0
Merci
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Commenter la réponse de yoyo269