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

  FORUM HardWare.fr
  Programmation

  [Visual basic] VB et Winsock

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Visual basic] VB et Winsock

n°37603
mareek
Et de 3 \o/
Posté le 07-06-2001 à 10:11:06  profilanswer
 

Bonjour à tous !
 
Je programme actuellement une application client/serveur en VB et j'ai quelques problèmes avec Winsock:  
lorsque je reçois plusieurs messages très raprochés, winsock les considère comme un seul message (qui contient en fait les 2 messages concaténés).
 
Existe-t-il une solution pour éiter ce problème autrement que par un timer?
 
Merci d'avance pour vos réponses
 
Mareek

mood
Publicité
Posté le 07-06-2001 à 10:11:06  profilanswer
 

n°37655
brascoo
Posté le 07-06-2001 à 11:33:13  profilanswer
 

Pourkoi ne separe tu pas tes message envoye avec des separateur (flag) bien significatif. ainsi tu decouperai en 2 msg a traiter que tu as recu d'un coup.
 
Br@scoo

n°37661
mareek
Et de 3 \o/
Posté le 07-06-2001 à 11:47:50  profilanswer
 

J'y ai pensé, mais je voulais faire un truc plus "propre".
 
Enfin, s'il n'y a pas d'autre solution...
 
Merci quand même.
 
mareek

n°37675
brascoo
Posté le 07-06-2001 à 12:12:51  profilanswer
 

Je vois pas en koi ce n'est pas propre.
C'est comme ca que cela fonctionne, si tu veux recevoir des données sur une socket et que tu veux envoyer des paquets , il faut fo bien les separer par kk chose.
 
Br@scoo

n°37684
mareek
Et de 3 \o/
Posté le 07-06-2001 à 12:28:39  profilanswer
 

Question de gouts, j'aurais préféré avoir un seul message à chaque DataArrival.
 
mareek

n°37712
HelloWorld
Salut tout le monde!
Posté le 07-06-2001 à 13:51:17  profilanswer
 

put1 de winsock ...
moi j'ai beaucoup bataillé pour ce composant :gun: ...
la solution "propre" que j'avais adoptée :
    le serveur envoit un truc, il attend l'accuse de reception du serveur
    le client recoit et accuse reception : il envoit un message pour dire OK, envoit le suite (s'il y en a)
 
j'avais utilisé les évènements qui *normalement* faisaient pareil (je crois que c'est send_complete ou un truc comme ca) mais ca marchait pas !!! :??: :gun:
alors je me le suis codé à la dure comme ca ...
plus tard, je me suis dit qu'il aurait ete mieux d'avoir un deuxieme port dédié à l'accusé de reception (genre ftp : un port de donnee et un de commande), ca aurai ete plus simple à gerer
ce serait à refaire je ferais pour chaque envoit :
 
    le serveur avertit sur le port de commande le type de donnee qu'il va transferer
    le client dit qu'il est pret sur le port de commande
    le serveur envoit sur le port de donnee les donnees
    le client averti sur le port de commande qu'il a recu (quand il l'a fait biçen sûr ;))
 
vala vala ... en esperant t'aider ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°37742
shadeoner
Posté le 07-06-2001 à 14:34:33  profilanswer
 

Juste un truc sur winsock :)
Comment on ajoute ce composant ?
Je n'y arrive pas
 
Merci


---------------
-=sHaDeoNeR=-
n°37748
mareek
Et de 3 \o/
Posté le 07-06-2001 à 14:40:51  profilanswer
 

Merci pour le coup de main, je vais essayer cette solution

n°37844
HelloWorld
Salut tout le monde!
Posté le 07-06-2001 à 16:21:14  profilanswer
 

faut pas te gourer ... faut prendre celui qui est dans le liste des composants (projet -> composants ...)je crois que c'est MSWINSCK ...
faut pas faire "ajouter un activex" ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°37892
mareek
Et de 3 \o/
Posté le 07-06-2001 à 18:35:24  profilanswer
 

J'ai finalement adopté la méthode des flags, mais j'ai un problème:
Lors d'une très grosse charge (20 clients envoyant un message de 300Ko toute les 50 milisecondes), environ 1% des messages sont tronqués de leurs 80 premiers octets (ni plus, ni moins)...
 
d'où ce problème peut-il venir?
 
est-ce du au buffer limité de winsock ?
 
merci d'avance de me répondre.
 
Mareek

mood
Publicité
Posté le 07-06-2001 à 18:35:24  profilanswer
 

n°37896
HelloWorld
Salut tout le monde!
Posté le 07-06-2001 à 18:50:10  profilanswer
 

heu ... 300 Ko ou 300 octets par message ?
parceque : 300Ko * 20 * 20 clients ... ca fait ... 120 Mo/sec !!!
sinon heu ... ca vient de n'importe quel client ?
essai plutot avec moins de clients qui envoient une taille différente ... regarde si les messages sont tronqués de autre chose que 80 octets ... pour quels clients ... si c'est le buffer, tu devrais vite capter ;)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°38044
mareek
Et de 3 \o/
Posté le 08-06-2001 à 11:04:11  profilanswer
 

erreur de ma part, c'est bien 300 octets et non 300Ko et le problème n'est pas spécifique à un client.
j'ai changé la taille des messages en fonction du numéro du client et les messages sont tronqués d'une longueur différente selon le client, donc c'est bien un problème de buffer.
 
Par contre, ce qui est bizarre, c'est que c'est le début du message qui est tronqué, mais jamais la fin. ça ne devrait pas être le contraire ?
 
mareek


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

  [Visual basic] VB et Winsock

 

Sujets relatifs
[quick basic] lancer deux fonctions EN MEME TEMPS[Visual C++] Insérer une petite console dans une Form
vous connaissez un compilateur quick basic sous windows?VISUAL BASIC + BASE DE DONNEE NEED HELP
[Quick basic] arghhhh je galere jetez un coup deuil svp....utiliser Visual C++ quand on sait pas s'en servir !
[Visual C++] Minimize box sans pouvoir agrandirId d'un process en Visual C++
[VISUAL C++] Fermeture prématurée d'un thread 
Plus de sujets relatifs à : [Visual basic] VB et Winsock


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