TcpClient Класс

Определение

Предоставляет клиентские подключения для сетевых служб протокола TCP.Provides client connections for TCP network services.

public ref class TcpClient : IDisposable
public class TcpClient : IDisposable
type TcpClient = class
    interface IDisposable
Public Class TcpClient
Implements IDisposable
Наследование
TcpClient
Реализации

Примеры

В следующем примере кода создается TcpClient соединение.The following code example establishes a TcpClient connection.

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;
      TcpClient^ client = gcnew TcpClient( server,port );
      
      // Translate the passed message into ASCII and store it as a Byte array.
      array<Byte>^data = Text::Encoding::ASCII->GetBytes( message );
      
      // Get a client stream for reading and writing.
      //  Stream stream = client->GetStream();

      NetworkStream^ stream = client->GetStream();
      
      // Send the message to the connected TcpServer. 
      stream->Write( data, 0, data->Length );

      Console::WriteLine( "Sent: {0}", message );
      
      // Receive the TcpServer::response.

      // Buffer to store the response bytes.
      data = gcnew array<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 = Text::Encoding::ASCII->GetString( data, 0, bytes );
      Console::WriteLine( "Received: {0}", responseData );
      
      // Close everything.
      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();
}
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;
    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.
   //  Stream stream = client.GetStream();

    NetworkStream stream = client.GetStream();

    // Send the message to the connected TcpServer.
    stream.Write(data, 0, data.Length);

    Console.WriteLine("Sent: {0}", message);

    // Receive the TcpServer.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);

    // Close everything.
    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
      Dim 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.
      '  Stream stream = client.GetStream();
      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 TcpServer.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)
      
      ' Close everything.
      stream.Close()
      client.Close()
   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 предоставляет простые методы для подключения, отправки и получения потоковых данных по сети в синхронном блокирующем режиме.The TcpClient class provides simple methods for connecting, sending, and receiving stream data over a network in synchronous blocking mode.

Чтобы TcpClient подключаться и обмениваться данными, TcpListener или Socket, созданные с помощью ProtocolType TCP, должны прослушивать входящие запросы на подключение.In order for TcpClient to connect and exchange data, a TcpListener or Socket created with the TCP ProtocolType must be listening for incoming connection requests. Подключиться к этому прослушивателю можно одним из следующих двух способов:You can connect to this listener in one of the following two ways:

  • Создайте TcpClient и вызовите один из трех доступных методов Connect.Create a TcpClient and call one of the three available Connect methods.

  • Создайте TcpClient, используя имя узла и номер порта удаленного узла.Create a TcpClient using the host name and port number of the remote host. Этот конструктор будет автоматически пытаться установить соединение.This constructor will automatically attempt a connection.

Примечание

Если вы хотите отправить датаграммы без соединений в режиме синхронной блокировки, используйте класс UdpClient.If you want to send connectionless datagrams in synchronous blocking mode, use the UdpClient class.

Примечания для тех, кто наследует этот метод

Для отправки и получения данных используйте метод GetStream(), чтобы получить NetworkStream.To send and receive data, use the GetStream() method to obtain a NetworkStream. Вызовите методы Write(Byte[], Int32, Int32) и Read(Byte[], Int32, Int32) NetworkStream, чтобы отправлять и получать данные с удаленного узла.Call the Write(Byte[], Int32, Int32) and Read(Byte[], Int32, Int32) methods of the NetworkStream to send and receive data with the remote host. Используйте метод Close(Int32), чтобы освободить все ресурсы, связанные с TcpClient.Use the Close(Int32) method to release all resources associated with the TcpClient.

Конструкторы

TcpClient()

Инициализирует новый экземпляр класса TcpClient.Initializes a new instance of the TcpClient class.

TcpClient(AddressFamily)

Инициализирует новый экземпляр класса TcpClient с заданным семейством.Initializes a new instance of the TcpClient class with the specified family.

TcpClient(IPEndPoint)

Инициализирует новый экземпляр класса TcpClient и связывает его с заданной локальной конечной точкой.Initializes a new instance of the TcpClient class and binds it to the specified local endpoint.

TcpClient(String, Int32)

Инициализирует новый экземпляр класса TcpClient и подключает его к указанному порту заданного узла.Initializes a new instance of the TcpClient class and connects to the specified port on the specified host.

Свойства

Active

Получает или задает значение, указывающее, установлено ли подключение.Gets or sets a value that indicates whether a connection has been made.

Available

Возвращает значение, указывающее количество полученных из сети и доступных для чтения данных.Gets the amount of data that has been received from the network and is available to be read.

Client

Возвращает или задает базовый объект Socket.Gets or sets the underlying Socket.

Connected

Возвращает значение, указывающее, подключен ли основной объект Socket для объекта TcpClient к удаленному узлу.Gets a value indicating whether the underlying Socket for a TcpClient is connected to a remote host.

ExclusiveAddressUse

Возвращает или задает значение Boolean, указывающее, разрешает ли объект TcpClient использовать порт только одному клиенту.Gets or sets a Boolean value that specifies whether the TcpClient allows only one client to use a port.

LingerState

Возвращает или задает информацию о состоянии задержки связанного сокета.Gets or sets information about the linger state of the associated socket.

NoDelay

Возвращает или задает значение, которое отключает задержку в том случае, когда буферы отправки и получения не заполнены.Gets or sets a value that disables a delay when send or receive buffers are not full.

ReceiveBufferSize

Возвращает или задает размер буфера приема.Gets or sets the size of the receive buffer.

ReceiveTimeout

Возвращает или задает длительность временного интервала, в течение которого объект TcpClient будет ожидать получение данных после инициации операции чтения.Gets or sets the amount of time a TcpClient will wait to receive data once a read operation is initiated.

SendBufferSize

Возвращает или задает размер буфера отправки.Gets or sets the size of the send buffer.

SendTimeout

Возвращает или задает длительность временного интервала, в течение которого объект TcpClient будет ожидать успешного завершения операции отправки данных.Gets or sets the amount of time a TcpClient will wait for a send operation to complete successfully.

Методы

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.Begins an asynchronous request for a remote host connection. Удаленный узел задается объектом IPAddress и номером порта (Int32).The remote host is specified by an IPAddress and a port number (Int32).

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.Begins an asynchronous request for a remote host connection. Удаленный узел задается массивом IPAddress и номером порта (Int32).The remote host is specified by an IPAddress array and a port number (Int32).

BeginConnect(String, Int32, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.Begins an asynchronous request for a remote host connection. Удаленный узел задается именем узла (String) и номером порта (Int32).The remote host is specified by a host name (String) and a port number (Int32).

Close()

Удаляет данный экземпляр TcpClient и запрашивает закрытие базового подключения TCP.Disposes this TcpClient instance and requests that the underlying TCP connection be closed.

Connect(IPAddress, Int32)

Подключает клиента к удаленному TCP-узлу, используя указанный IP-адрес и номер порта.Connects the client to a remote TCP host using the specified IP address and port number.

Connect(IPAddress[], Int32)

Подключает клиента к удаленному TCP-узлу, используя указанный IP-адрес и номер порта.Connects the client to a remote TCP host using the specified IP addresses and port number.

Connect(IPEndPoint)

Подключает клиента к удаленному TCP-узлу, используя указанную удаленную сетевую конечную точку.Connects the client to a remote TCP host using the specified remote network endpoint.

Connect(String, Int32)

Подключает клиента к указанному порту заданного узла.Connects the client to the specified port on the specified host.

ConnectAsync(IPAddress, Int32)

Подключает клиента к удаленному TCP-узлу, используя заданный IP-адрес и номер порта в асинхронной операции.Connects the client to a remote TCP host using the specified IP address and port number as an asynchronous operation.

ConnectAsync(IPAddress[], Int32)

Подключает клиента к удаленному TCP-узлу, используя заданные IP-адреса и номер порта в асинхронной операции.Connects the client to a remote TCP host using the specified IP addresses and port number as an asynchronous operation.

ConnectAsync(String, Int32)

Подключает клиента к указанному TCP-порту заданного узла в асинхронной операции.Connects the client to the specified TCP port on the specified host as an asynchronous operation.

Dispose()

Освобождает все управляемые и неуправляемые ресурсы, используемые TcpClient.Releases the managed and unmanaged resources used by the TcpClient.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые TcpClient, и дополнительно освобождает управляемые ресурсы.Releases the unmanaged resources used by the TcpClient and optionally releases the managed resources.

EndConnect(IAsyncResult)

Завершает ожидающую асинхронную попытку на подключение.Ends a pending asynchronous connection attempt.

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
Finalize()

Освобождает ресурсы, используемые классом TcpClient.Frees resources used by the TcpClient class.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetStream()

Возвращает объект NetworkStream, используемый для отправки и получения данных.Returns the NetworkStream used to send and receive data.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

IDisposable.Dispose()

Освобождает все ресурсы, используемые TcpClient.Releases all resources used by the TcpClient.

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

Дополнительно