Obtient la quantité de données reçues du réseau et disponibles pour la lecture.
Espace de noms : System.Net.Sockets
Assembly : System (dans system.dll)
Visual Basic (Déclaration)
Public ReadOnly Property Available As Integer
Visual Basic (Utilisation)
Dim instance As Socket
Dim value As Integer
value = instance.Available
public int Available { get; }
public:
property int Available {
int get ();
}
/** @property */
public int get_Available ()
public function get Available () : int
Valeur de la propriété
Nombre d'octets de données reçues du réseau et disponibles pour la lecture.
Si vous utilisez un Socket non bloquant, la propriété Available constitue un bon moyen de déterminer si les données sont mises en file d'attente pour la lecture avant d'appeler la méthode Receive. Les données disponibles correspondent à la quantité totale de données en file d'attente dans la mémoire tampon réseau pour la lecture. Si aucune donnée ne se trouve en file d'attente dans la mémoire tampon réseau, la propriété Available retourne 0.
Si l'hôte distant arrête ou ferme la connexion, Available peut lever SocketException. Si vous recevez SocketException, utilisez la propriété SocketException.ErrorCode pour obtenir le code d'erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d'erreur de l'API Windows Sockets version 2 dans MSDN Library pour obtenir une description détaillée de l'erreur.
Remarque |
|---|
| Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d'informations, consultez Traçage réseau. |
L'exemple de code suivant compare les résultats de l'appel de IOControl avec FIONREAD et la propriété Available.
// FIONREAD is also available as the "Available" property.
public const int FIONREAD = 0x4004667F;
static void DisplayPendingByteCount(Socket s)
{
byte[] outValue = BitConverter.GetBytes(0);
// Check how many bytes have been received.
s.IOControl(FIONREAD, null, outValue);
uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
bytesAvailable, s.Available);
return;
}
// FIONREAD is also available as the "Available" property.
const int FIONREAD = 0x4004667F;
void DisplayPendingByteCount( Socket^ s )
{
array<Byte>^ outValue = BitConverter::GetBytes( 0 );
// Check how many bytes have been received.
s->IOControl( FIONREAD, nullptr, outValue );
UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 );
Console::WriteLine( "server has {0} bytes pending. Available property says {1}.",
bytesAvailable, s->Available );
return;
}
// FIONREAD is also available as the "Available" property.
public static final int FIONREAD = 0x4004667F;
static void DisplayPendingByteCount(Socket s)
{
ubyte outValue[] = BitConverter.GetBytes(0);
// Check how many bytes have been received.
s.IOControl(FIONREAD, null, outValue);
UInt32 bytesAvailable = BitConverter.ToUInt32(outValue, 0);
//ToDo: Unsigned Integers not supported- converted to int
Console.WriteLine("server has {0} bytes pending. Available property "
+ "says {1}.", bytesAvailable.ToString(),
(System.Int32)s.get_Available());
return;
} //DisplayPendingByteCount
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
.NET Framework
Prise en charge dans : 2.0, 1.1, 1.0
.NET Compact Framework
Prise en charge dans : 2.0, 1.0