Hum possible, mais j'ai besoin de conserver les états, parce qu'après transmission des données il y a encore une phase d'échange de messages.
Type: Messages; Utilisateur: CouaC
Hum possible, mais j'ai besoin de conserver les états, parce qu'après transmission des données il y a encore une phase d'échange de messages.
Bon alors de bonnes nouvelles ! recv() retourne 0 si et seulement si la socket est fermée en écriture a l'autre bout ! Donc il faut préalablement soit redefinir un protocole qui encapsule la taille...
ça marche mais pas mieux ... je comprend plus là :s
on peut pas réouvrir une socket fermée en ecriture ? ou simuler la fermeture en envoyant un signal quelconque ?
J'y ai pensé aussi :s
while((read = fread(buffer, 1, SIZE, f)) > 0)
{
send(sock, buffer, read, 0);
memset(buffer,0, SIZE);
taille += read;
}
rd est un int. il correspond au nombre d'octets lu par recv dans la socket :)
(je pense que tu le sais mais sinon le message serait trop vide ^^)
Une valeur strictement positive parce qu'en testant la valeur pour nul ou inferieure a 0, ça ne break; pas ...
Non pas de modification de ce coté la, le truc bizarre c'est que seul cette boucle est defaillante ... avant j'utilise recv() et il fonctionne comme il faut (phase de synchro) mais là où il envoie...
j'y ait pensé !
mais c'est de l'envoi de données de tout type, quel tag pourrait nappartenir a aucun fichier ?
On ne peut pas réouvrir une socket en écriture ?
Bonjour,
dans le cadre d'un echange client/serveur par socket, j'utilise recv() pour recevoir des données transmisent par send(). Si a la fin de mon send() je ferme la socket en écriture, pas de...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.