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

  FORUM HardWare.fr
  Programmation

  Socket C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Socket C++

n°34509
antsite
Je me souviens
Posté le 26-05-2001 à 15:33:38  profilanswer
 

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 ?

mood
Publicité
Posté le 26-05-2001 à 15:33:38  profilanswer
 

n°34512
Amadeus
Posté le 26-05-2001 à 15:46:51  profilanswer
 

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 :)

n°34519
youdontcar​e
Posté le 26-05-2001 à 16:06:21  profilanswer
 

qu'envoies tu exactement ? send() envoie toutes les données d'un coup, pas besoin de boucler.

n°34520
youdontcar​e
Posté le 26-05-2001 à 16:07:01  profilanswer
 

j'oublie de préciser, c'est sur recv() qu'il faut boucler. tu as peut être confondu dans ton code.

n°34524
Amadeus
Posté le 26-05-2001 à 16:19:02  profilanswer
 

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.

n°34525
Amadeus
Posté le 26-05-2001 à 16:24:48  profilanswer
 

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...

n°34540
antsite
Je me souviens
Posté le 26-05-2001 à 17:59:27  profilanswer
 

Merci à vous tous (et surtout Amadeus :-))


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Socket C++

 

Sujets relatifs
Probleme socket en JAVA / CSocket, rezo , C et tout et tout...
Gestion des socket en C[C++ Builder / Delphi] Gérer l'exception d'un socket
[VC++6.0] problème de socket .... bizarre ...Socket
[php] socket : limite de temp? 
Plus de sujets relatifs à : Socket C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR