TcpClient Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет клиентские подключения для сетевых служб TCP.
public ref class TcpClient : IDisposable
public class TcpClient : IDisposable
type TcpClient = class
interface IDisposable
Public Class TcpClient
Implements IDisposable
- Наследование
-
TcpClient
- Реализации
Примеры
В следующем примере кода устанавливается TcpClient подключение.
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
Комментарии
Класс TcpClient предоставляет простые методы для подключения, отправки и получения потоковой передачи данных по сети в синхронном режиме блокировки.
Чтобы TcpClient подключиться к данным и обмениваться данными, TcpListenerSocket необходимо прослушивать входящие запросы на подключение или создать с помощью TCPProtocolType. Вы можете подключиться к этому прослушивателю одним из следующих двух способов:
TcpClientСоздайте и вызовите один из трех доступных Connect методов.TcpClientСоздайте имя узла и номер порта удаленного узла. Этот конструктор автоматически попытается подключиться.
Note
Если вы хотите отправить без подключения диаграммы данных в синхронном режиме UdpClient блокировки, используйте класс.
Примечания для тех, кто наследует этот метод
Для отправки GetStream() и получения данных используйте метод для получения NetworkStream. Write(Byte[], Int32, Int32) Вызовите и Read(Byte[], Int32, Int32) методы отправки NetworkStream и получения данных с удаленным узлом. Close(Int32) Используйте метод для освобождения всех ресурсов, связанных с этимTcpClient.
Конструкторы
| Имя | Описание |
|---|---|
| TcpClient() |
Инициализирует новый экземпляр класса TcpClient. |
| TcpClient(AddressFamily) |
Инициализирует новый экземпляр TcpClient класса с указанным семейством. |
| TcpClient(IPEndPoint) |
Инициализирует новый экземпляр TcpClient класса и привязывает его к указанной локальной конечной точке. |
| TcpClient(String, Int32) |
Инициализирует новый экземпляр TcpClient класса и подключается к указанному порту на указанном узле. |
Свойства
| Имя | Описание |
|---|---|
| Active |
Возвращает или задает значение, указывающее, был ли выполнено соединение. |
| Available |
Получает объем данных, полученных из сети и доступных для чтения. |
| Client |
Возвращает или задает базовый Socketобъект. |
| Connected |
Возвращает значение, указывающее, подключен ли базовый Socket объект TcpClient к удаленному узлу. |
| ExclusiveAddressUse |
Возвращает или задает Boolean значение, указывающее, разрешено ли TcpClient использовать порт только одному клиенту. |
| LingerState |
Возвращает или задает сведения о состоянии задерживающегося сокета. |
| NoDelay |
Возвращает или задает значение, которое отключает задержку при отправке или получении буферов не полны. |
| ReceiveBufferSize |
Возвращает или задает размер буфера получения. |
| ReceiveTimeout |
Возвращает или задает время TcpClient ожидания получения данных после запуска операции чтения. |
| SendBufferSize |
Возвращает или задает размер буфера отправки. |
| SendTimeout |
Возвращает или задает время TcpClient ожидания успешной операции отправки. |
Методы
| Имя | Описание |
|---|---|
| BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Начинает асинхронный запрос подключения к удаленному узлу. Удаленный узел указывается номером IPAddress порта (Int32). |
| BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Начинает асинхронный запрос подключения к удаленному узлу. Удаленный узел указывается массивом IPAddress и номером порта (Int32). |
| BeginConnect(String, Int32, AsyncCallback, Object) |
Начинает асинхронный запрос подключения к удаленному узлу. Удаленный узел указывается именем узла (String) и номером порта (Int32). |
| Close() |
Удаляет этот TcpClient экземпляр и запрашивает закрытие базового TCP-подключения. |
| Connect(IPAddress, Int32) |
Подключает клиент к удаленному узлу TCP с помощью указанного IP-адреса и номера порта. |
| Connect(IPAddress[], Int32) |
Подключает клиент к удаленному узлу TCP с помощью указанных IP-адресов и номера порта. |
| Connect(IPEndPoint) |
Подключает клиент к удаленному узлу TCP с помощью указанной конечной точки удаленной сети. |
| Connect(String, Int32) |
Подключает клиент к указанному порту на указанном узле. |
| ConnectAsync(IPAddress, Int32, CancellationToken) |
Подключает клиент к удаленному узлу TCP, используя указанный IP-адрес и номер порта в качестве асинхронной операции. |
| ConnectAsync(IPAddress, Int32) |
Подключает клиент к удаленному узлу TCP, используя указанный IP-адрес и номер порта в качестве асинхронной операции. |
| ConnectAsync(IPAddress[], Int32, CancellationToken) |
Подключает клиент к удаленному узлу TCP, используя указанные IP-адреса и номер порта в качестве асинхронной операции. |
| ConnectAsync(IPAddress[], Int32) |
Подключает клиент к удаленному узлу TCP, используя указанные IP-адреса и номер порта в качестве асинхронной операции. |
| ConnectAsync(IPEndPoint, CancellationToken) |
Подключает клиент к удаленному узлу TCP, используя указанную конечную точку в качестве асинхронной операции. |
| ConnectAsync(IPEndPoint) |
Подключает клиент к удаленному узлу TCP, используя указанную конечную точку в качестве асинхронной операции. |
| ConnectAsync(String, Int32, CancellationToken) |
Подключает клиент к указанному TCP-порту на указанном узле как асинхронная операция. |
| ConnectAsync(String, Int32) |
Подключает клиент к указанному TCP-порту на указанном узле как асинхронная операция. |
| Dispose() |
Освобождает управляемые и неуправляемые ресурсы, используемые TcpClient. |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые TcpClient и при необходимости освобождает управляемые ресурсы. |
| EndConnect(IAsyncResult) |
Завершает ожидающая асинхронная попытка подключения. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Finalize() |
Освобождает ресурсы, используемые классом TcpClient . |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetStream() |
Возвращает используемые для отправки NetworkStream и получения данных. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IDisposable.Dispose() |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода. Освобождает все ресурсы, используемые параметром TcpClient. |