Comment vider les sockets ? - C - Programmation
Marsh Posté le 23-06-2004 à 22:01:04
t'inquiete pas coco, en envoi la socket va bloquer seulement si son buffer interne est plein et ne permet pas de stoquer le nombre d'octets que tu veux envoyer.
Si elle bloque pour cause de buffer plein, la pile tcp/ip de ton système va bien finir par réussir à envoyer les données contenues dans le buffer tcp/ip. Et donc send va débloquer quand la socket se sera vidée suffisament pour "envoyer" tes octets.
Marsh Posté le 23-06-2004 à 23:40:02
en plus j'ai l'impression que tu as raison
c'est vraiment bizzare cette histoire
aupravant quand je voyais a mon dernier send 30 caracteres ca passait et lorsque j'essayé 31, ca passait plus
enfin bon la j'ai l'impression que ca fonctionne
Marsh Posté le 23-06-2004 à 23:40:37
et au fait tu m'as plus que rassurer quand tu m'as dis ca
merci a toi
Marsh Posté le 23-06-2004 à 23:44:04
non, a mon avis tu as un bug mais j'ai pas envie de lire le gros paté que tu as posté.
passer de 30 à 31 octets, ça ne represente rien.
Marsh Posté le 24-06-2004 à 00:00:47
schnapsmann a écrit : non, a mon avis tu as un bug mais j'ai pas envie de lire le gros paté que tu as posté. |
lol je te comprends a moitié
mon gros paté comme tu le dis, je ne l'ai pas assez commenyé pour que ce soit plus lisible
mais maintenant ca fonctionne
je sais pas pourquoi ....
Marsh Posté le 24-06-2004 à 09:09:45
ça serait une bonne idée de faire des fonctions, ou mieux, une classe.
Marsh Posté le 24-06-2004 à 13:48:06
oui la je sais que c'est pas tres propre ce que j'ai fais de mettre les sends et les rcv, y a tellement de calcule a faire autour des recv et des send que j'ai decidé de faire les fonctions apres ...
En ce qui concerne les classes, j'avais de mal à visulaiser les objets dans ce que je veux faire ... Et comme je n'aime pas faire du C dans du C++ c'est a dire en faisant presque pas de POO, mon choix c'est fais sur le C
Marsh Posté le 23-06-2004 à 21:53:25
j'aimerais bien faire 2 dialoguer un client serveur avec les sockets normal bloquantes. J'arrive a envoyer des données mais au bout d'un moment le fonction send bloque.
Malheuresement j'ai vu dans l'aide de send :
Si la socket ne dispose pas de la place suffisante pour le message,
alors send va bloquer, à moins que la socket ait été configurée en mode
d'entrées/sorties non-bloquantes auquel cas elle renverra EAGAIN. On
peut utiliser l'appel système select(2) pour vérifier s'il est possible
d'émettre des données.
qu'une sockete dispose d'une quantité de placé limité. Comment faire avec des sockete bloquante car je n'ai pas envie de me lancer dans des socket non bloquante.
le client en voie un message
le serveur repond
le client repond
le serveur repond
.....
et ainsi de suite, je n'ai pas besoin de sockete non bloquantes
CLIENT
SERVEUR
Message édité par alex2423 le 23-06-2004 à 22:30:22