TcpClient Klasa

Definicja

Zapewnia połączenia klientów dla usług sieciowych 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
Dziedziczenie
TcpClient
Implementuje

Przykłady

Poniższy przykład kodu nawiązuje TcpClient połączenie.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

Uwagi

TcpClientKlasa zawiera proste metody łączenia, wysyłania i otrzymywania danych strumieniowych za pośrednictwem sieci w trybie blokowania synchronicznego.The TcpClient class provides simple methods for connecting, sending, and receiving stream data over a network in synchronous blocking mode.

TcpClientAby program mógł łączyć i wymieniać dane, a TcpListener lub Socket utworzyć przy użyciu protokołu TCP, ProtocolType musi nasłuchiwać żądań połączeń przychodzących.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. Można nawiązać połączenie z tym odbiornikiem na jeden z następujących sposobów:You can connect to this listener in one of the following two ways:

  • Utwórz TcpClient i Wywołaj jedną z trzech dostępnych Connect metod.Create a TcpClient and call one of the three available Connect methods.

  • Utwórz TcpClient nazwę hosta i numer portu hosta zdalnego.Create a TcpClient using the host name and port number of the remote host. Ten konstruktor automatycznie podejmie próbę nawiązania połączenia.This constructor will automatically attempt a connection.

Uwaga

Jeśli chcesz wysłać bezpołączeni datagramy w trybie blokowania synchronicznego, użyj UdpClient klasy.If you want to send connectionless datagrams in synchronous blocking mode, use the UdpClient class.

Uwagi dotyczące dziedziczenia

Aby wysyłać i odbierać dane, użyj GetStream() metody w celu uzyskania NetworkStream .To send and receive data, use the GetStream() method to obtain a NetworkStream. Wywołaj Write(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) metody i, NetworkStream Aby wysyłać i odbierać dane za pomocą hosta zdalnego.Call the Write(Byte[], Int32, Int32) and Read(Byte[], Int32, Int32) methods of the NetworkStream to send and receive data with the remote host. Użyj Close(Int32) metody, aby zwolnić wszystkie zasoby skojarzone z TcpClient .Use the Close(Int32) method to release all resources associated with the TcpClient.

Konstruktory

TcpClient()

Inicjuje nowe wystąpienie klasy TcpClient.Initializes a new instance of the TcpClient class.

TcpClient(AddressFamily)

Inicjuje nowe wystąpienie TcpClient klasy z określoną rodziną.Initializes a new instance of the TcpClient class with the specified family.

TcpClient(IPEndPoint)

Inicjuje nowe wystąpienie TcpClient klasy i wiąże je z określonym lokalnym punktem końcowym.Initializes a new instance of the TcpClient class and binds it to the specified local endpoint.

TcpClient(String, Int32)

Inicjuje nowe wystąpienie TcpClient klasy i łączy się z określonym portem na określonym hoście.Initializes a new instance of the TcpClient class and connects to the specified port on the specified host.

Właściwości

Active

Pobiera lub ustawia wartość wskazującą, czy połączenie zostało nawiązane.Gets or sets a value that indicates whether a connection has been made.

Available

Pobiera ilość danych odebranych z sieci i jest dostępna do odczytu.Gets the amount of data that has been received from the network and is available to be read.

Client

Pobiera lub ustawia podstawowy Socket .Gets or sets the underlying Socket.

Connected

Pobiera wartość wskazującą, czy podstawowa Socket dla a TcpClient jest połączona z hostem zdalnym.Gets a value indicating whether the underlying Socket for a TcpClient is connected to a remote host.

ExclusiveAddressUse

Pobiera lub ustawia wartość określającą Boolean , czy TcpClient zezwala tylko jednemu klientowi na używanie portu.Gets or sets a Boolean value that specifies whether the TcpClient allows only one client to use a port.

LingerState

Pobiera lub ustawia informacje o stanie pokutujący skojarzonego gniazda.Gets or sets information about the linger state of the associated socket.

NoDelay

Pobiera lub ustawia wartość, która wyłącza opóźnienie, gdy bufory wysyłania lub odbioru nie są pełne.Gets or sets a value that disables a delay when send or receive buffers are not full.

ReceiveBufferSize

Pobiera lub ustawia rozmiar buforu odbioru.Gets or sets the size of the receive buffer.

ReceiveTimeout

Pobiera lub ustawia czas TcpClient oczekiwania na odebranie danych po zainicjowaniu operacji odczytu.Gets or sets the amount of time a TcpClient will wait to receive data once a read operation is initiated.

SendBufferSize

Pobiera lub ustawia rozmiar buforu wysyłania.Gets or sets the size of the send buffer.

SendTimeout

Pobiera lub ustawia czas TcpClient oczekiwania na pomyślne zakończenie operacji wysyłania.Gets or sets the amount of time a TcpClient will wait for a send operation to complete successfully.

Metody

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a remote host connection. Host zdalny jest określony przez IPAddress i numer portu ( Int32 ).The remote host is specified by an IPAddress and a port number (Int32).

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

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a remote host connection. Host zdalny jest określony przez IPAddress tablicę i numer portu ( Int32 ).The remote host is specified by an IPAddress array and a port number (Int32).

BeginConnect(String, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a remote host connection. Host zdalny jest określony przez nazwę hosta ( String ) i numer portu ( Int32 ).The remote host is specified by a host name (String) and a port number (Int32).

Close()

Usuwa to TcpClient wystąpienie i żąda zamknięcia bazowego połączenia TCP.Disposes this TcpClient instance and requests that the underlying TCP connection be closed.

Connect(IPAddress, Int32)

Łączy klienta ze zdalnym hostem TCP przy użyciu określonego adresu IP i numeru portu.Connects the client to a remote TCP host using the specified IP address and port number.

Connect(IPAddress[], Int32)

Łączy klienta programu ze zdalnym hostem TCP przy użyciu określonych adresów IP i numeru portu.Connects the client to a remote TCP host using the specified IP addresses and port number.

Connect(IPEndPoint)

Łączy klienta ze zdalnym hostem TCP przy użyciu określonego punktu końcowego sieci zdalnej.Connects the client to a remote TCP host using the specified remote network endpoint.

Connect(String, Int32)

Łączy klienta z określonym portem na określonym hoście.Connects the client to the specified port on the specified host.

ConnectAsync(IPAddress, Int32)

Łączy klienta ze zdalnym hostem TCP przy użyciu określonego adresu IP i numeru portu jako operacji asynchronicznej.Connects the client to a remote TCP host using the specified IP address and port number as an asynchronous operation.

ConnectAsync(IPAddress, Int32, CancellationToken)

Łączy klienta ze zdalnym hostem TCP przy użyciu określonego adresu IP i numeru portu jako operacji asynchronicznej.Connects the client to a remote TCP host using the specified IP address and port number as an asynchronous operation.

ConnectAsync(IPAddress[], Int32)

Łączy klienta programu ze zdalnym hostem TCP przy użyciu określonych adresów IP i numeru portu jako operacji asynchronicznej.Connects the client to a remote TCP host using the specified IP addresses and port number as an asynchronous operation.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Łączy klienta programu ze zdalnym hostem TCP przy użyciu określonych adresów IP i numeru portu jako operacji asynchronicznej.Connects the client to a remote TCP host using the specified IP addresses and port number as an asynchronous operation.

ConnectAsync(String, Int32)

Nawiązuje połączenie klienta z określonym portem TCP na określonym hoście jako operacją asynchroniczną.Connects the client to the specified TCP port on the specified host as an asynchronous operation.

ConnectAsync(String, Int32, CancellationToken)

Nawiązuje połączenie klienta z określonym portem TCP na określonym hoście jako operacją asynchroniczną.Connects the client to the specified TCP port on the specified host as an asynchronous operation.

Dispose()

Zwalnia zasoby zarządzane i niezarządzane używane przez program TcpClient .Releases the managed and unmanaged resources used by the TcpClient.

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element TcpClient i opcjonalnie zwalnia zasoby zarządzane.Releases the unmanaged resources used by the TcpClient and optionally releases the managed resources.

EndConnect(IAsyncResult)

Przerywa oczekującą próbę połączenia asynchronicznego.Ends a pending asynchronous connection attempt.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Finalize()

Zwalnia zasoby używane przez TcpClient klasę.Frees resources used by the TcpClient class.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetStream()

Zwraca wartość NetworkStream użytą do wysyłania i odbierania danych.Returns the NetworkStream used to send and receive data.

GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDisposable.Dispose()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwalnia wszelkie zasoby używane przez element TcpClient.Releases all resources used by the TcpClient.

Dotyczy

Zobacz też