TcpClient Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje klientská připojení pro síťové služby TCP.
public ref class TcpClient : IDisposable
public class TcpClient : IDisposable
type TcpClient = class
interface IDisposable
Public Class TcpClient
Implements IDisposable
- Dědičnost
-
TcpClient
- Implementuje
Příklady
Následující příklad kódu vytvoří TcpClient připojení.
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
Poznámky
Třída TcpClient poskytuje jednoduché metody pro připojení, odesílání a příjem dat datového proudu přes síť v synchronním režimu blokování.
Aby bylo možné TcpClient připojit a vyměňovat data, TcpListener musí příchozí požadavky na připojení naslouchat příchozím požadavkům na připojení nebo Socket vytvořené pomocí protokolu TCP ProtocolType . K tomuto naslouchacímu procesu se můžete připojit jedním z následujících dvou způsobů:
Vytvořte
TcpClienta zavolejte jednu ze tří dostupných Connect metod.Vytvořte
TcpClientnázev hostitele a číslo portu vzdáleného hostitele. Tento konstruktor se automaticky pokusí o připojení.
Note
Pokud chcete odesílat datagramy bez připojení v synchronním režimu blokování, použijte UdpClient třídu.
Poznámky pro dědice
Chcete-li odesílat a přijímat data, použijte metodu GetStream()NetworkStreamk získání . Write(Byte[], Int32, Int32) Volání metod odesílání Read(Byte[], Int32, Int32)NetworkStream a přijímání dat pomocí vzdáleného hostitele Použijte metodu Close(Int32) k uvolnění všech prostředků přidružených k .TcpClient
Konstruktory
| Name | Description |
|---|---|
| TcpClient() |
Inicializuje novou instanci TcpClient třídy. |
| TcpClient(AddressFamily) |
Inicializuje novou instanci TcpClient třídy se zadanou rodinou. |
| TcpClient(IPEndPoint) |
Inicializuje novou instanci TcpClient třídy a vytvoří vazbu na zadaný místní koncový bod. |
| TcpClient(String, Int32) |
Inicializuje novou instanci TcpClient třídy a připojí se k zadanému portu na zadaném hostiteli. |
Vlastnosti
| Name | Description |
|---|---|
| Active |
Získá nebo nastaví hodnotu, která označuje, zda bylo připojení provedeno. |
| Available |
Získá množství dat přijatých ze sítě a je k dispozici ke čtení. |
| Client |
Získá nebo nastaví základní Socket. |
| Connected |
Získá hodnotu určující, zda je podklad Socket pro připojení TcpClient ke vzdálenému hostiteli. |
| ExclusiveAddressUse |
Získá nebo nastaví Boolean hodnotu, která určuje, zda TcpClient umožňuje, aby port používal pouze jeden klient. |
| LingerState |
Získá nebo nastaví informace o stavu přetrvání přidruženého soketu. |
| NoDelay |
Získá nebo nastaví hodnotu, která zakáže zpoždění při odesílání nebo příjmu vyrovnávací paměti nejsou plné. |
| ReceiveBufferSize |
Získá nebo nastaví velikost vyrovnávací paměti příjmu. |
| ReceiveTimeout |
Získá nebo nastaví dobu TcpClient , po kterou bude čekat na příjem dat po zahájení operace čtení. |
| SendBufferSize |
Získá nebo nastaví velikost vyrovnávací paměti pro odesílání. |
| SendTimeout |
Získá nebo nastaví dobu TcpClient , po kterou bude čekat na úspěšné dokončení operace odeslání. |
Metody
| Name | Description |
|---|---|
| BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Vzdálený hostitel je určen číslem IPAddress portu a číslem portu (Int32). |
| BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Vzdálený hostitel je určen polem IPAddress a číslem portu (Int32). |
| BeginConnect(String, Int32, AsyncCallback, Object) |
Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Vzdálený hostitel je určen názvem hostitele (String) a číslem portu (Int32). |
| Close() |
Odstraní tuto TcpClient instanci a požádá o uzavření základního připojení TCP. |
| Connect(IPAddress, Int32) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadané IP adresy a čísla portu. |
| Connect(IPAddress[], Int32) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaných IP adres a čísla portu. |
| Connect(IPEndPoint) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaného koncového bodu vzdálené sítě. |
| Connect(String, Int32) |
Připojí klienta k zadanému portu na zadaném hostiteli. |
| ConnectAsync(IPAddress, Int32, CancellationToken) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadané IP adresy a čísla portu jako asynchronní operace. |
| ConnectAsync(IPAddress, Int32) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadané IP adresy a čísla portu jako asynchronní operace. |
| ConnectAsync(IPAddress[], Int32, CancellationToken) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaných IP adres a čísla portu jako asynchronní operace. |
| ConnectAsync(IPAddress[], Int32) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaných IP adres a čísla portu jako asynchronní operace. |
| ConnectAsync(IPEndPoint, CancellationToken) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaného koncového bodu jako asynchronní operace. |
| ConnectAsync(IPEndPoint) |
Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaného koncového bodu jako asynchronní operace. |
| ConnectAsync(String, Int32, CancellationToken) |
Připojí klienta k zadanému portu TCP na zadaném hostiteli jako asynchronní operaci. |
| ConnectAsync(String, Int32) |
Připojí klienta k zadanému portu TCP na zadaném hostiteli jako asynchronní operaci. |
| Dispose() |
Uvolní spravované a nespravované prostředky používané nástrojem TcpClient. |
| Dispose(Boolean) |
Uvolní nespravované prostředky používané TcpClient a volitelně uvolní spravované prostředky. |
| EndConnect(IAsyncResult) |
Ukončí čekající asynchronní pokus o připojení. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| Finalize() |
Uvolní prostředky používané TcpClient třídou. |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetStream() |
Vrátí použitou NetworkStream k odesílání a příjmu dat. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu. Uvolní všechny prostředky používané nástrojem TcpClient. |