Bonjour,
Je découvre et essaie de bien comprendre les mécanismes de la communication synchrone par Sockets entre un serveur et un client.
Du côté de mon client la propriété .available renvoie bien le nombre d'octets présents dans le tampon lorsqu'il y en a et je peux l'utiliser pour dimensionner mon buffer et déclencher la lecture.
Par contre, du côté serveur cette propriété reste désespérément à zéro.
Voici un extrait de code de la partie serveur:
Qu'en pensez-vous, est-ce normal ? cette propriété n'est-elle pas applicable du côté du serveur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ' instanciation du type de communication du socket MonSocketServeur = OuvreSocket(MonEP:=MonEP, TimeOut:=5000) ' Définit le nombre de clients acceptés MonSocketServeur.Listen(1) ' Attente de connexion Dim SocketEnvoi As Socket = MonSocketServeur.Accept() Dim MesBytes() As Byte Do While True ' boucle de récetion des messages Dim Nba As Integer = SocketEnvoi.Available() ' renvoie toujours zéro ReDim MesBytes(250) ' ici je voudrais utiliser Nba pour définir la dimension du tableau Dim n = SocketEnvoi.Receive(MesBytes) ' renvoie bien le nombre d'octets lus ...' traitement des messages suivi d'envois le cas échéant loop
Merci pour vos réponses.
Partager