TcpClient TcpClient TcpClient TcpClient Class

정의

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
상속
TcpClientTcpClientTcpClientTcpClient
구현

예제

다음 코드 예제에서는 설정 된 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 TCP를 사용 하 여 만든 ProtocolType 들어오는 연결 요청을 수신 해야 합니다.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() TcpClient() TcpClient()

TcpClient 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TcpClient class.

TcpClient(AddressFamily) TcpClient(AddressFamily) TcpClient(AddressFamily) TcpClient(AddressFamily)

지정된 패밀리를 사용하여 TcpClient 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TcpClient class with the specified family.

TcpClient(IPEndPoint) TcpClient(IPEndPoint) TcpClient(IPEndPoint) TcpClient(IPEndPoint)

TcpClient 클래스의 새 인스턴스를 초기화하고 해당 인스턴스를 지정된 로컬 엔드포인트에 바인딩합니다.Initializes a new instance of the TcpClient class and binds it to the specified local endpoint.

TcpClient(String, Int32) TcpClient(String, Int32) TcpClient(String, Int32) TcpClient(String, Int32)

TcpClient 클래스의 새 인스턴스를 초기화하고 지정된 호스트의 지정된 포트에 연결합니다.Initializes a new instance of the TcpClient class and connects to the specified port on the specified host.

속성

Active Active Active Active

연결되었는지 여부를 나타내는 값을 가져오거나 설정합니다.Gets or sets a value that indicates whether a connection has been made.

Available Available Available Available

네트워크에서 받아서 읽을 수 있는 데이터의 양을 가져옵니다.Gets the amount of data that has been received from the network and is available to be read.

Client Client Client Client

내부 Socket을 가져오거나 설정합니다.Gets or sets the underlying Socket.

Connected Connected Connected Connected

Socket의 내부 TcpClient이 원격 호스트에 연결되어 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the underlying Socket for a TcpClient is connected to a remote host.

ExclusiveAddressUse ExclusiveAddressUse ExclusiveAddressUse ExclusiveAddressUse

Boolean가 하나의 포트를 하나의 클라이언트에서만 사용하도록 허용하는지 여부를 지정하는 TcpClient 값을 가져오거나 설정합니다.Gets or sets a Boolean value that specifies whether the TcpClient allows only one client to use a port.

LingerState LingerState LingerState LingerState

연결된 소켓의 링거 상태에 대한 정보를 가져오거나 설정합니다.Gets or sets information about the linger state of the associated socket.

NoDelay NoDelay NoDelay NoDelay

송신 또는 수신 버퍼가 꽉 차지 않았을 때 지연을 비활성화하는 값을 가져오거나 설정합니다.Gets or sets a value that disables a delay when send or receive buffers are not full.

ReceiveBufferSize ReceiveBufferSize ReceiveBufferSize ReceiveBufferSize

수신 버퍼의 크기를 가져오거나 설정합니다.Gets or sets the size of the receive buffer.

ReceiveTimeout ReceiveTimeout ReceiveTimeout ReceiveTimeout

읽기 작업이 시작된 후에 TcpClient가 데이터를 수신하기 위해 대기하는 기간을 가져오거나 설정합니다.Gets or sets the amount of time a TcpClient will wait to receive data once a read operation is initiated.

SendBufferSize SendBufferSize SendBufferSize SendBufferSize

송신 버퍼의 크기를 가져오거나 설정합니다.Gets or sets the size of the send buffer.

SendTimeout SendTimeout SendTimeout 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) BeginConnect(IPAddress, Int32, AsyncCallback, Object) BeginConnect(IPAddress, Int32, AsyncCallback, Object) 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) BeginConnect(IPAddress[], Int32, AsyncCallback, Object) BeginConnect(IPAddress[], Int32, AsyncCallback, Object) 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) BeginConnect(String, Int32, AsyncCallback, Object) BeginConnect(String, Int32, AsyncCallback, Object) 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() Close() Close() Close()

TcpClient 인스턴스를 삭제하고 내부 TCP 연결을 닫도록 요청합니다.Disposes this TcpClient instance and requests that the underlying TCP connection be closed.

Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32)

지정된 IP 주소와 포트 번호를 사용하여 원격 TCP 호스트에 클라이언트를 연결합니다.Connects the client to a remote TCP host using the specified IP address and port number.

Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32)

지정된 IP 주소와 포트 번호를 사용하여 원격 TCP 호스트에 클라이언트를 연결합니다.Connects the client to a remote TCP host using the specified IP addresses and port number.

Connect(IPEndPoint) Connect(IPEndPoint) Connect(IPEndPoint) Connect(IPEndPoint)

지정된 네트워크 엔드포인트를 사용하여 원격 TCP 호스트에 클라이언트를 연결합니다.Connects the client to a remote TCP host using the specified remote network endpoint.

Connect(String, Int32) Connect(String, Int32) Connect(String, Int32) Connect(String, Int32)

지정된 호스트의 지정된 포트에 클라이언트를 연결합니다.Connects the client to the specified port on the specified host.

ConnectAsync(IPAddress, Int32) ConnectAsync(IPAddress, Int32) ConnectAsync(IPAddress, Int32) ConnectAsync(IPAddress, Int32)

지정된 IP 주소와 포트 번호를 사용하여 비동기 작업으로 원격 TCP 호스트에 클라이언트를 연결합니다.Connects the client to a remote TCP host using the specified IP address and port number as an asynchronous operation.

ConnectAsync(IPAddress[], Int32) ConnectAsync(IPAddress[], Int32) ConnectAsync(IPAddress[], Int32) ConnectAsync(IPAddress[], Int32)

지정된 IP 주소와 포트 번호를 사용하여 비동기 작업으로 원격 TCP 호스트에 클라이언트를 연결합니다.Connects the client to a remote TCP host using the specified IP addresses and port number as an asynchronous operation.

ConnectAsync(String, Int32) ConnectAsync(String, Int32) ConnectAsync(String, Int32) ConnectAsync(String, Int32)

지정된 호스트의 지정된 TCP 포트에 클라이언트를 비동기 작업으로 연결합니다.Connects the client to the specified TCP port on the specified host as an asynchronous operation.

Dispose() Dispose() Dispose() Dispose()

TcpClient에서 사용하는 관리되는 리소스 및 관리되지 않는 리소스를 해제합니다.Releases the managed and unmanaged resources used by the TcpClient.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

TcpClient에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the TcpClient and optionally releases the managed resources.

EndConnect(IAsyncResult) EndConnect(IAsyncResult) EndConnect(IAsyncResult) EndConnect(IAsyncResult)

보류 중인 비동기 연결 시도를 끝냅니다.Ends a pending asynchronous connection attempt.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
Finalize() Finalize() Finalize() Finalize()

TcpClient 클래스에서 사용한 리소스를 해제합니다.Frees resources used by the TcpClient class.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetStream() GetStream() GetStream() GetStream()

데이터를 보내고 받는 데 사용되는 NetworkStream을 반환합니다.Returns the NetworkStream used to send and receive data.

GetType() GetType() GetType() GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(Inherited from Object)

명시적 인터페이스 구현

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

TcpClient에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the TcpClient.

보안

SocketPermission
나가는 연결을 설정 하거나 들어오는 요청을 받아들이는 권한입니다.Permission to establish an outgoing connection or accept an incoming request.

적용 대상

추가 정보