TcpClient Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit des connexions clientes pour les services réseau TCP.
public ref class TcpClient : IDisposable
public class TcpClient : IDisposable
type TcpClient = class
interface IDisposable
Public Class TcpClient
Implements IDisposable
- Héritage
-
TcpClient
- Implémente
Exemples
L’exemple de code suivant établit une TcpClient connexion.
static void Connect(String server, String message)
{
try
{
// Create a TcpClient.
// Note, for this client to work you need to have a TcpServer
// connected to the same address as specified by the server, port
// combination.
Int32 port = 13000;
// Prefer a using declaration to ensure the instance is Disposed later.
using TcpClient client = new TcpClient(server, port);
// Translate the passed message into ASCII and store it as a Byte array.
Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
// Get a client stream for reading and writing.
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);
Console.WriteLine("Sent: {0}", message);
// Receive the server response.
// Buffer to store the response bytes.
data = new Byte[256];
// String to store the response ASCII representation.
String responseData = String.Empty;
// Read the first batch of the TcpServer response bytes.
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("Received: {0}", responseData);
// Explicit close is not necessary since TcpClient.Dispose() will be
// called automatically.
// stream.Close();
// client.Close();
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: {0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
Console.WriteLine("\n Press Enter to continue...");
Console.Read();
}
Shared Sub Connect(server As [String], message As [String])
Try
' Create a TcpClient.
' Note, for this client to work you need to have a TcpServer
' connected to the same address as specified by the server, port
' combination.
Dim port As Int32 = 13000
' Prefer using declaration to ensure the instance is Disposed later.
Using client As New TcpClient(server, port)
' Translate the passed message into ASCII and store it as a Byte array.
Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
' Get a client stream for reading and writing.
Dim stream As NetworkStream = client.GetStream()
' Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length)
Console.WriteLine("Sent: {0}", message)
' Receive the server response.
' Buffer to store the response bytes.
data = New [Byte](256) {}
' String to store the response ASCII representation.
Dim responseData As [String] = [String].Empty
' Read the first batch of the TcpServer response bytes.
Dim bytes As Int32 = stream.Read(data, 0, data.Length)
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
Console.WriteLine("Received: {0}", responseData)
' Explicit close is not necessary since TcpClient.Dispose() will be
' called automatically.
' stream.Close()
' client.Close()
End Using
Catch e As ArgumentNullException
Console.WriteLine("ArgumentNullException: {0}", e)
Catch e As SocketException
Console.WriteLine("SocketException: {0}", e)
End Try
Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
Console.Read()
End Sub
Remarques
La TcpClient classe fournit des méthodes simples pour connecter, envoyer et recevoir des données de flux sur un réseau en mode de blocage synchrone.
Pour TcpClient se connecter et échanger des données, une TcpListener ou Socket créée avec le protocole TCP ProtocolType doit écouter les demandes de connexion entrantes. Vous pouvez vous connecter à cet écouteur de l’une des deux manières suivantes :
Créez une
TcpClientméthode et appelez l’une des trois méthodes disponibles Connect .Créez un
TcpClientnom d’hôte et le numéro de port de l’hôte distant. Ce constructeur tente automatiquement une connexion.
Note
Si vous souhaitez envoyer des datagrammes sans connexion en mode de blocage synchrone, utilisez la UdpClient classe.
Notes pour les héritiers
Pour envoyer et recevoir des données, utilisez la GetStream() méthode pour obtenir un NetworkStream. Appelez les méthodes et Read(Byte[], Int32, Int32) les Write(Byte[], Int32, Int32) méthodes de l’envoi et de la NetworkStream réception de données avec l’hôte distant. Utilisez la Close(Int32) méthode pour libérer toutes les ressources associées au TcpClient.
Constructeurs
| Nom | Description |
|---|---|
| TcpClient() |
Initialise une nouvelle instance de la classe TcpClient. |
| TcpClient(AddressFamily) |
Initialise une nouvelle instance de la TcpClient classe avec la famille spécifiée. |
| TcpClient(IPEndPoint) |
Initialise une nouvelle instance de la TcpClient classe et la lie au point de terminaison local spécifié. |
| TcpClient(String, Int32) |
Initialise une nouvelle instance de la TcpClient classe et se connecte au port spécifié sur l’hôte spécifié. |
Propriétés
| Nom | Description |
|---|---|
| Active |
Obtient ou définit une valeur qui indique si une connexion a été établie. |
| Available |
Obtient la quantité de données qui ont été reçues du réseau et qui sont disponibles pour être lues. |
| Client |
Obtient ou définit le sous-jacent Socket. |
| Connected |
Obtient une valeur indiquant si le sous-jacent Socket d’un TcpClient hôte distant est connecté. |
| ExclusiveAddressUse |
Obtient ou définit une Boolean valeur qui spécifie si le TcpClient seul client autorise l’utilisation d’un port. |
| LingerState |
Obtient ou définit des informations sur l’état persistant du socket associé. |
| NoDelay |
Obtient ou définit une valeur qui désactive un délai lorsque les mémoires tampons d’envoi ou de réception ne sont pas complètes. |
| ReceiveBufferSize |
Obtient ou définit la taille de la mémoire tampon de réception. |
| ReceiveTimeout |
Obtient ou définit la durée pendant laquelle une TcpClient opération de lecture est lancée avant d’attendre la réception des données. |
| SendBufferSize |
Obtient ou définit la taille de la mémoire tampon d’envoi. |
| SendTimeout |
Obtient ou définit la durée pendant laquelle une TcpClient opération d’envoi doit s’exécuter correctement. |
Méthodes
| Nom | Description |
|---|---|
| BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Commence une demande asynchrone pour une connexion hôte distante. L’hôte distant est spécifié par un IPAddress numéro de port (Int32). |
| BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Commence une demande asynchrone pour une connexion hôte distante. L’hôte distant est spécifié par un IPAddress tableau et un numéro de port (Int32). |
| BeginConnect(String, Int32, AsyncCallback, Object) |
Commence une demande asynchrone pour une connexion hôte distante. L’hôte distant est spécifié par un nom d’hôte (String) et un numéro de port (Int32). |
| Close() |
Supprime cette TcpClient instance et demande que la connexion TCP sous-jacente soit fermée. |
| Connect(IPAddress, Int32) |
Connecte le client à un hôte TCP distant à l’aide de l’adresse IP et du numéro de port spécifiés. |
| Connect(IPAddress[], Int32) |
Connecte le client à un hôte TCP distant à l’aide des adresses IP et du numéro de port spécifiés. |
| Connect(IPEndPoint) |
Connecte le client à un hôte TCP distant à l’aide du point de terminaison réseau distant spécifié. |
| Connect(String, Int32) |
Connecte le client au port spécifié sur l’hôte spécifié. |
| ConnectAsync(IPAddress, Int32) |
Connecte le client à un hôte TCP distant à l’aide de l’adresse IP et du numéro de port spécifiés en tant qu’opération asynchrone. |
| ConnectAsync(IPAddress[], Int32) |
Connecte le client à un hôte TCP distant à l’aide des adresses IP et du numéro de port spécifiés en tant qu’opération asynchrone. |
| ConnectAsync(String, Int32) |
Connecte le client au port TCP spécifié sur l’hôte spécifié en tant qu’opération asynchrone. |
| Dispose() |
Libère les ressources managées et non managées utilisées par le TcpClient. |
| Dispose(Boolean) |
Libère les ressources non managées utilisées par les TcpClient ressources gérées et libère éventuellement les ressources managées. |
| EndConnect(IAsyncResult) |
Termine une tentative de connexion asynchrone en attente. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| Finalize() |
Libère les ressources utilisées par la TcpClient classe. |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetStream() |
Retourne l’objet NetworkStream utilisé pour envoyer et recevoir des données. |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IDisposable.Dispose() |
Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code. Libère toutes les ressources utilisées par le TcpClient. |