Winsock limité à 2047 caractères ?

cs_lionel4 Messages postés 129 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 26 septembre 2008 - 7 févr. 2005 à 21:00
cbnet Messages postés 176 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 7 mars 2005 - 7 févr. 2005 à 23:48
Bonjour à tous,

Je suis en train de développer une application utilisant Winsock et je suis confronté à un problème assez bizarre. Voila mon appli envoie une requête à un serveur de jeu afin d'obtenir le statut du serveur (nombre de joueurs etc etc...) et tout va bien quand le serveur tourne avec maximum 16 joueurs. Au dela, la réponse obtenu par Winsock n'est pas complète (j'ai une partie mais il me manque la fin de cette réponse) et Winsock me renvoie alors les 2047 premiers caractères de la réponse et pas un de plus. (Il n'y a pas de problèmes en dessous de 16 joueurs car la réponse ne passe pas les 2000 caractères.)

Donc ma question et simple, comment faire pour récupérer les bytes manquant ?

Merci

2 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
7 févr. 2005 à 23:32
Salut
Si tu cherches un peu dans ce forum et dans les sources, tu découvriras qu'une envoi du serveur peut-être lu en plusieurs fois, en plusieurs appels de DataArrivals.
A toi de mémoriser les données et d'ajouter les paquets aux paquets précédents, et ce jusqu'à la fin réelle des informations (une variable Public ou déclarée en Static dans DataArrivals.
Il faudra que tu saches quel est (ou quels sont) les caractères de fin de réception (double vbCrLf ?)

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cbnet Messages postés 176 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 7 mars 2005
7 févr. 2005 à 23:48
Je ne sais exactement comment tu as conçu ton programme, mais avec
Winsock tu peux envoyer 8192 caractères d'un coup normalement, ce qui
pose également problème. C'est un problème souvent posé, le principe
consiste à envoyer en plusieurs fois tes données, et à créer un
protocole simple pour gérer tout ça... Tu trouveras plein de choses
dans les sources et le forum (recherche "winsock buffer" ou "winsock
tampon" etc...)

@+ et bonne chance
0