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.

Применяется к

См. также раздел