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:
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
Qu'en pensez-vous, est-ce normal ? cette propriété n'est-elle pas applicable du côté du serveur ?

Merci pour vos réponses.