Socket 클래스

정의

Berkeley 소켓 인터페이스를 구현합니다.Implements the Berkeley sockets interface.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
상속
Socket
구현

예제

다음 코드 예제에서는 Socket 클래스를 사용 하 여 HTTP 서버에 데이터를 보내고 응답을 받을 수 있는 방법을 보여 줍니다.The following code example shows how the Socket class can be used to send data to an HTTP server and receive the response. 이 예제에서는 전체 페이지를 받을 때까지 차단 합니다.This example blocks until the entire page is received.

#using <System.dll>

using namespace System;
using namespace System::Text;
using namespace System::IO;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Collections;
Socket^ ConnectSocket( String^ server, int port )
{
   Socket^ s = nullptr;
   IPHostEntry^ hostEntry = nullptr;
   
   // Get host related information.
   hostEntry = Dns::Resolve( server );
   
   // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
   // an exception that occurs when the host IP Address is not compatible with the address family
   // (typical in the IPv6 case).
   IEnumerator^ myEnum = hostEntry->AddressList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      IPAddress^ address = safe_cast<IPAddress^>(myEnum->Current);
      IPEndPoint^ endPoint = gcnew IPEndPoint( address,port );
      Socket^ tmpS = gcnew Socket( endPoint->AddressFamily,SocketType::Stream,ProtocolType::Tcp );
      tmpS->Connect( endPoint );
      if ( tmpS->Connected )
      {
         s = tmpS;
         break;
      }
      else
      {
         continue;
      }
   }

   return s;
}

// This method requests the home page content for the specified server.
String^ SocketSendReceive( String^ server, int port )
{
   String^ request = String::Concat( "GET / HTTP/1.1\r\nHost: ", server, "\r\nConnection: Close\r\n\r\n" );
   array<Byte>^bytesSent = Encoding::ASCII->GetBytes( request );
   array<Byte>^bytesReceived = gcnew array<Byte>(256);
   String^ strRetPage = "";
   
   // Create a socket connection with the specified server and port.
   Socket^ s = ConnectSocket( server, port );
   if ( s == nullptr )
      return ("Connection failed");
   
   // Send request to the server.
   s->Send( bytesSent, bytesSent->Length, static_cast<SocketFlags>(0) );
   
   // Receive the server home page content.
   int bytes = 0;
   strRetPage = String::Concat( "Default HTML page on ", server, ":\r\n" );
   do
   {
      bytes = s->Receive( bytesReceived, bytesReceived->Length, static_cast<SocketFlags>(0) );
      strRetPage = String::Concat( strRetPage, Encoding::ASCII->GetString( bytesReceived, 0, bytes ) );
   }
   while ( bytes > 0 );
   
   s->Dispose();

   return strRetPage;
}

int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   String^ host;
   int port = 80;
   if ( args->Length == 1 )
      
   // If no server name is passed as argument to this program, 
   // use the current host name as default.
   host = Dns::GetHostName();
   else
      host = args[ 1 ];

   String^ result = SocketSendReceive( host, port );
   Console::WriteLine( result );
}
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class GetSocket
{
    private static Socket ConnectSocket(string server, int port)
    {
        Socket s = null;
        IPHostEntry hostEntry = null;
        
        // Get host related information.
        hostEntry = Dns.GetHostEntry(server);

        // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
        // an exception that occurs when the host IP Address is not compatible with the address family
        // (typical in the IPv6 case).
        foreach(IPAddress address in hostEntry.AddressList)
        {
            IPEndPoint ipe = new IPEndPoint(address, port);
            Socket tempSocket = 
                new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            tempSocket.Connect(ipe);

            if(tempSocket.Connected)
            {
                s = tempSocket;
                break;
            }
            else
            {
                continue;
            }
        }
        return s;
    }

    // This method requests the home page content for the specified server.
    private static string SocketSendReceive(string server, int port) 
    {
        string request = "GET / HTTP/1.1\r\nHost: " + server + 
            "\r\nConnection: Close\r\n\r\n";
        Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
        Byte[] bytesReceived = new Byte[256];
        string page = "";
        
        // Create a socket connection with the specified server and port.
        using(Socket s = ConnectSocket(server, port)) {

            if (s == null)
                return ("Connection failed");
        
            // Send request to the server.
            s.Send(bytesSent, bytesSent.Length, 0);  
            
            // Receive the server home page content.
            int bytes = 0;
            page = "Default HTML page on " + server + ":\r\n";

            // The following will block until the page is transmitted.
            do {
                bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
                page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
            }
            while (bytes > 0);
        }
        
        return page;
    }
    
    public static void Main(string[] args) 
    {
        string host;
        int port = 80;

        if (args.Length == 0)
            // If no server name is passed as argument to this program, 
            // use the current host name as the default.
            host = Dns.GetHostName();
        else
            host = args[0];

        string result = SocketSendReceive(host, port); 
        Console.WriteLine(result);
    }
}

Imports System.Text
Imports System.IO
Imports System.Net
Imports System.Net.Sockets

Public Class GetSocket
   
   Private Shared Function ConnectSocket(server As String, port As Integer) As Socket
      Dim s As Socket = Nothing
      Dim hostEntry As IPHostEntry = Nothing      
     
         ' Get host related information.
        hostEntry = Dns.GetHostEntry(server)
         
         ' Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
         ' an exception that occurs when the host host IP Address is not compatible with the address family
         ' (typical in the IPv6 case).
      Dim address As IPAddress
 
        For Each address In  hostEntry.AddressList
            Dim endPoint As New IPEndPoint(address, port)
            Dim tempSocket As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
      
            tempSocket.Connect(endPoint)
            
            If tempSocket.Connected Then
               s = tempSocket
               Exit For
            End If

         Next address
      
      Return s
   End Function
   
   ' This method requests the home page content for the specified server.
   
   Private Shared Function SocketSendReceive(server As String, port As Integer) As String
      'Set up variables and String to write to the server.
      Dim ascii As Encoding = Encoding.ASCII
      Dim request As String = "GET / HTTP/1.1" + ControlChars.Cr + ControlChars.Lf + "Host: " + server + ControlChars.Cr + ControlChars.Lf + "Connection: Close" + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf
      Dim bytesSent As [Byte]() = ascii.GetBytes(request)
      Dim bytesReceived(255) As [Byte]
      Dim page As String = ""  
      
      ' Create a socket connection with the specified server and port.
      Dim s As Socket = ConnectSocket(server, port)
      
      If s Is Nothing Then
         Return "Connection failed"
      End If 
      ' Send request to the server.
      s.Send(bytesSent, bytesSent.Length, 0)
      
      ' Receive the server  home page content.
      Dim bytes As Int32
      
      ' Read the first 256 bytes.
      page = "Default HTML page on " + server + ":" + ControlChars.Cr + ControlChars.Lf
      
      ' The following will block until the page is transmitted.
      Do
         bytes = s.Receive(bytesReceived, bytesReceived.Length, 0)
            page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes)
      Loop While bytes > 0
      
      Return page
   End Function 
   
   'Entry point which delegates to C-style main Private Function
   Public Overloads Shared Sub Main()
      Main(System.Environment.GetCommandLineArgs())
   End Sub
   
   Overloads Private Shared Sub Main(args() As String)
      Dim host As String
      Dim port As Integer = 80
      
      If args.Length = 1 Then
         ' If no server name is passed as argument to this program, 
         ' use the current host name as default.
         host = Dns.GetHostName()
      Else
         host = args(1)
      End If 
      
      Dim result As String = SocketSendReceive(host, port)
      
      Console.WriteLine(result)
   End Sub
End Class  

설명

Socket 클래스는 네트워크 통신을 위한 다양 한 메서드 및 속성 집합을 제공 합니다.The Socket class provides a rich set of methods and properties for network communications. Socket 클래스를 사용 하면 ProtocolType 열거에 나열 된 통신 프로토콜을 사용 하 여 동기 및 비동기 데이터 전송을 모두 수행할 수 있습니다.The Socket class allows you to perform both synchronous and asynchronous data transfer using any of the communication protocols listed in the ProtocolType enumeration.

Socket 클래스는 비동기 메서드의 .NET Framework 명명 패턴을 따릅니다.The Socket class follows the .NET Framework naming pattern for asynchronous methods. 예를 들어 동기 Receive 메서드는 비동기 BeginReceiveEndReceive 메서드에 해당 합니다.For example, the synchronous Receive method corresponds to the asynchronous BeginReceive and EndReceive methods.

애플리케이션 실행 중 하나의 스레드만, 필요한 경우에 동기 작업 모드를 위해 설계 된 다음 메서드를 사용 합니다.If your application only requires one thread during execution, use the following methods, which are designed for synchronous operation mode.

  • TCP와 같은 연결 지향 프로토콜을 사용 하는 경우 서버는 Listen 메서드를 사용 하 여 연결을 수신할 수 있습니다.If you are using a connection-oriented protocol such as TCP, your server can listen for connections using the Listen method. Accept 메서드는 들어오는 연결 요청을 처리 하 고 원격 호스트와 데이터를 통신 하는 데 사용할 수 있는 Socket을 반환 합니다.The Accept method processes any incoming connection requests and returns a Socket that you can use to communicate data with the remote host. 이 반환 된 Socket를 사용 하 여 Send 또는 Receive 메서드를 호출 합니다.Use this returned Socket to call the Send or Receive method. 로컬 IP 주소와 포트 번호를 지정 하려면 Listen 메서드를 호출 하기 전에 Bind 메서드를 호출 합니다.Call the Bind method prior to calling the Listen method if you want to specify the local IP address and port number. 사용 가능한 포트를 할당 하려면 기본 서비스 공급자를 하려는 경우 0의 포트 번호를 사용 합니다.Use a port number of zero if you want the underlying service provider to assign a free port for you. 수신 대기 호스트에 연결 하려면 Connect 메서드를 호출 합니다.If you want to connect to a listening host, call the Connect method. 데이터를 전달 하려면 Send 또는 Receive 메서드를 호출 합니다.To communicate data, call the Send or Receive method.

  • UDP와 같은 연결 없는 프로토콜을 사용 하는 경우 연결을 전혀 수신 필요가 없습니다.If you are using a connectionless protocol such as UDP, you do not need to listen for connections at all. 들어오는 데이터 그램을 수락 하려면 ReceiveFrom 메서드를 호출 합니다.Call the ReceiveFrom method to accept any incoming datagrams. SendTo 메서드를 사용 하 여 원격 호스트에 데이터 그램을 보냅니다.Use the SendTo method to send datagrams to a remote host.

실행 하는 동안 별도 스레드를 사용 하 여 통신을 처리 하려면 비동기 작업 모드를 위해 설계 된 다음 메서드를 사용 합니다.To process communications using separate threads during execution, use the following methods, which are designed for asynchronous operation mode.

소켓에서 여러 비동기 작업을 수행 하는 경우 완료 되지 않은 반드시 시작 되는 순서에서입니다.If you perform multiple asynchronous operations on a socket, they do not necessarily complete in the order in which they are started.

데이터 보내기와 받기를 마쳤으면 Shutdown 메서드를 사용 하 여 Socket를 사용 하지 않도록 설정 합니다.When you are finished sending and receiving data, use the Shutdown method to disable the Socket. Shutdown호출한 후 Close 메서드를 호출 하 여 Socket와 연결 된 모든 리소스를 해제 합니다.After calling Shutdown, call the Close method to release all resources associated with the Socket.

Socket 클래스를 사용 하면 SetSocketOption 메서드를 사용 하 여 Socket을 구성할 수 있습니다.The Socket class allows you to configure your Socket using the SetSocketOption method. GetSocketOption 메서드를 사용 하 여 이러한 설정을 검색 합니다.Retrieve these settings using the GetSocketOption method.

참고

상대적으로 간단한 애플리케이션을 작성 하는 최대 성능이 필요 하지 않은 경우 사용을 고려 TcpClient, TcpListener, 및 UdpClient합니다.If you are writing a relatively simple application and do not require maximum performance, consider using TcpClient, TcpListener, and UdpClient. 이러한 클래스는 Socket 통신에 보다 간단 하 고 사용자에 게 친숙 한 인터페이스를 제공 합니다.These classes provide a simpler and more user-friendly interface to Socket communications.

생성자

Socket(AddressFamily, SocketType, ProtocolType)

지정된 주소 패밀리, 소켓 종류 및 프로토콜을 사용하여 Socket 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Socket class using the specified address family, socket type and protocol.

Socket(SocketInformation)

Socket에서 반환된 특정 값을 사용하여 DuplicateAndClose(Int32) 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Socket class using the specified value returned from DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

지정된 소켓 종류 및 프로토콜을 사용하여 Socket 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Socket class using the specified socket type and protocol.

속성

AddressFamily

Socket의 주소 패밀리를 가져옵니다.Gets the address family of the Socket.

Available

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

Blocking

Socket이 블로킹 모드인지 여부를 나타내는 값을 설정하거나 가져옵니다.Gets or sets a value that indicates whether the Socket is in blocking mode.

Connected

Socket이 마지막으로 Send 또는 Receive 작업을 수행할 때 원격 호스트에 연결되었는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether a Socket is connected to a remote host as of the last Send or Receive operation.

DontFragment

Boolean에서 IP(인터넷 프로토콜) 데이터그램의 조각화를 허용하는지 여부를 나타내는 Socket 값을 가져오거나 설정합니다.Gets or sets a Boolean value that specifies whether the Socket allows Internet Protocol (IP) datagrams to be fragmented.

DualMode

Socket이 IPv4 및 IPv6 둘 다에 사용되는 이중 모드 소켓인지 여부를 지정하는 Boolean 값을 가져오거나 설정합니다.Gets or sets a Boolean value that specifies whether the Socket is a dual-mode socket used for both IPv4 and IPv6.

EnableBroadcast

Boolean이 브로드캐스트 패킷을 보내거나 받을 수 있는지 여부를 나타내는 Socket 값을 가져오거나 설정합니다.Gets or sets a Boolean value that specifies whether the Socket can send or receive broadcast packets.

ExclusiveAddressUse

Boolean이 하나의 포트에 하나의 프로세스만 바인딩하는 것을 허용하는지 여부를 지정하는 Socket 값을 가져오거나 설정합니다.Gets or sets a Boolean value that specifies whether the Socket allows only one process to bind to a port.

Handle

Socket에 대한 운영 체제 핸들을 가져옵니다.Gets the operating system handle for the Socket.

IsBound

Socket이 특정 로컬 포트에 바인딩되었는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the Socket is bound to a specific local port.

LingerState

보류 중인 데이터를 모두 보내려고 할 때 Socket에서 소켓 닫기를 지연할지 여부를 지정하는 값을 가져오거나 설정합니다.Gets or sets a value that specifies whether the Socket will delay closing a socket in an attempt to send all pending data.

LocalEndPoint

로컬 엔드포인트를 가져옵니다.Gets the local endpoint.

MulticastLoopback

나가는 멀티캐스트 패킷을 보내는 애플리케이션에 전달할지 여부를 지정하는 값을 가져오거나 설정합니다.Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application.

NoDelay

Boolean 스트림에서 Nagle 알고리즘을 사용하는지 여부를 나타내는 Socket 값을 가져오거나 설정합니다.Gets or sets a Boolean value that specifies whether the stream Socket is using the Nagle algorithm.

OSSupportsIPv4

내부 운영 체제 및 네트워크 어댑터에서 IPv4(인터넷 프로토콜 버전 4)를 지원하는지 여부를 나타냅니다.Indicates whether the underlying operating system and network adaptors support Internet Protocol version 4 (IPv4).

OSSupportsIPv6

내부 운영 체제 및 네트워크 어댑터에서 IPv6(인터넷 프로토콜 버전 6)을 지원하는지 여부를 나타냅니다.Indicates whether the underlying operating system and network adaptors support Internet Protocol version 6 (IPv6).

ProtocolType

Socket의 프로토콜 종류를 가져옵니다.Gets the protocol type of the Socket.

ReceiveBufferSize

Socket의 수신 버퍼 크기를 지정하는 값을 가져오거나 설정합니다.Gets or sets a value that specifies the size of the receive buffer of the Socket.

ReceiveTimeout

동기 Receive 호출이 완료되어야 하는 제한 시간을 지정하는 값을 가져오거나 설정합니다.Gets or sets a value that specifies the amount of time after which a synchronous Receive call will time out.

RemoteEndPoint

원격 엔드포인트를 가져옵니다.Gets the remote endpoint.

SafeHandle

현재 Socket 개체가 캡슐화하는 소켓 핸들을 나타내는 SafeSocketHandle을 가져옵니다.Gets a SafeSocketHandle that represents the socket handle that the current Socket object encapsulates.

SendBufferSize

Socket의 송신 버퍼 크기를 지정하는 값을 가져오거나 설정합니다.Gets or sets a value that specifies the size of the send buffer of the Socket.

SendTimeout

동기 Send 호출이 완료되어야 하는 제한 시간을 지정하는 값을 가져오거나 설정합니다.Gets or sets a value that specifies the amount of time after which a synchronous Send call will time out.

SocketType

Socket의 형식을 가져옵니다.Gets the type of the Socket.

SupportsIPv4

IPv4 지원이 사용 가능하며 현재 호스트에서 사용하도록 설정되어 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether IPv4 support is available and enabled on the current host.

SupportsIPv6

Framework에서 더 이상 사용되지 않는 특정 Dns 멤버에 대해 IPv6을 지원하는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the Framework supports IPv6 for certain obsolete Dns members.

Ttl

Socket에서 보낸 IP(인터넷 프로토콜) 패킷의 TTL(Time-To-Live) 값을 지정하는 값을 가져오거나 설정합니다.Gets or sets a value that specifies the Time To Live (TTL) value of Internet Protocol (IP) packets sent by the Socket.

UseOnlyOverlappedIO

소켓에서 중첩된 I/O 모드만 사용해야 하는지 여부를 지정합니다.Specifies whether the socket should only use Overlapped I/O mode.

메서드

Accept()

새로 만든 연결에 대한 새 Socket을 만듭니다.Creates a new Socket for a newly created connection.

AcceptAsync(SocketAsyncEventArgs)

들어오는 연결 시도를 받아들이는 비동기 작업을 시작합니다.Begins an asynchronous operation to accept an incoming connection attempt.

BeginAccept(AsyncCallback, Object)

들어오는 연결 시도를 받아들이는 비동기 작업을 시작합니다.Begins an asynchronous operation to accept an incoming connection attempt.

BeginAccept(Int32, AsyncCallback, Object)

들어오는 연결 시도를 받아들이는 비동기 작업을 시작하고 클라이언트 애플리케이션에서 보낸 데이터의 첫 번째 블록을 받습니다.Begins an asynchronous operation to accept an incoming connection attempt and receives the first block of data sent by the client application.

BeginAccept(Socket, Int32, AsyncCallback, Object)

지정된 소켓에서 들어오는 연결 시도를 받아들이는 비동기 작업을 시작하고 클라이언트 애플리케이션에서 보낸 데이터의 첫 번째 블록을 받습니다.Begins an asynchronous operation to accept an incoming connection attempt from a specified socket and receives the first block of data sent by the client application.

BeginConnect(EndPoint, AsyncCallback, Object)

원격 호스트 연결에 대한 비동기 요청을 시작합니다.Begins an asynchronous request for a remote host connection.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

원격 호스트 연결에 대한 비동기 요청을 시작합니다.Begins an asynchronous request for a remote host connection. 호스트는 IPAddress와 포트 번호로 지정됩니다.The host is specified by an IPAddress and a port number.

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

원격 호스트 연결에 대한 비동기 요청을 시작합니다.Begins an asynchronous request for a remote host connection. 호스트는 IPAddress 배열과 포트 번호로 지정됩니다.The host is specified by an IPAddress array and a port number.

BeginConnect(String, Int32, AsyncCallback, Object)

원격 호스트 연결에 대한 비동기 요청을 시작합니다.Begins an asynchronous request for a remote host connection. 호스트는 호스트 이름과 포트 번호로 지정됩니다.The host is specified by a host name and a port number.

BeginDisconnect(Boolean, AsyncCallback, Object)

원격 엔드포인트와의 연결을 끊는 비동기 요청을 시작합니다.Begins an asynchronous request to disconnect from a remote endpoint.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

연결된 Socket에서 데이터를 비동기적으로 받기 시작합니다.Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

연결된 Socket에서 데이터를 비동기적으로 받기 시작합니다.Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

연결된 Socket에서 데이터를 비동기적으로 받기 시작합니다.Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

연결된 Socket에서 데이터를 비동기적으로 받기 시작합니다.Begins to asynchronously receive data from a connected Socket.

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

지정된 네트워크 디바이스에서 비동기적으로 데이터를 받기 시작합니다.Begins to asynchronously receive data from a specified network device.

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

비동기적으로 지정된 SocketFlags를 사용하여 데이터 버퍼의 특정 위치로 지정된 바이트 수의 데이터를 받고 엔드포인트 및 패킷 정보를 저장하기 시작합니다.Begins to asynchronously receive the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

연결된 Socket에 데이터를 비동기적으로 보냅니다.Sends data asynchronously to a connected Socket.

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

연결된 Socket에 데이터를 비동기적으로 보냅니다.Sends data asynchronously to a connected Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

연결된 Socket에 데이터를 비동기적으로 보냅니다.Sends data asynchronously to a connected Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

연결된 Socket에 데이터를 비동기적으로 보냅니다.Sends data asynchronously to a connected Socket.

BeginSendFile(String, AsyncCallback, Object)

Socket 플래그를 사용하여 fileName 파일을 연결된 UseDefaultWorkerThread 개체에 보냅니다.Sends the file fileName to a connected Socket object using the UseDefaultWorkerThread flag.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

파일 및 데이터 버퍼를 연결된 Socket 개체에 비동기적으로 보냅니다.Sends a file and buffers of data asynchronously to a connected Socket object.

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

특정 원격 호스트에 데이터를 비동기적으로 보냅니다.Sends data asynchronously to a specific remote host.

Bind(EndPoint)

Socket을 로컬 엔드포인트와 연결합니다.Associates a Socket with a local endpoint.

CancelConnectAsync(SocketAsyncEventArgs)

원격 호스트 연결에 대한 비동기 요청을 취소합니다.Cancels an asynchronous request for a remote host connection.

Close()

Socket 연결을 닫고 연결된 리소스를 모두 해제합니다.Closes the Socket connection and releases all associated resources.

Close(Int32)

Socket 연결을 닫고 지정된 시간 제한의 모든 관련 리소스를 해제하여 대기 중인 데이터가 전송될 수 있도록 합니다.Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

Connect(EndPoint)

원격 호스트에 대한 연결을 설정합니다.Establishes a connection to a remote host.

Connect(IPAddress, Int32)

원격 호스트에 대한 연결을 설정합니다.Establishes a connection to a remote host. 호스트는 IP 주소와 포트 번호로 지정됩니다.The host is specified by an IP address and a port number.

Connect(IPAddress[], Int32)

원격 호스트에 대한 연결을 설정합니다.Establishes a connection to a remote host. 호스트는 IP 주소의 배열과 포트 번호로 지정됩니다.The host is specified by an array of IP addresses and a port number.

Connect(String, Int32)

원격 호스트에 대한 연결을 설정합니다.Establishes a connection to a remote host. 호스트는 호스트 이름과 포트 번호로 지정됩니다.The host is specified by a host name and a port number.

ConnectAsync(SocketAsyncEventArgs)

원격 호스트 연결에 대한 비동기 요청을 시작합니다.Begins an asynchronous request for a connection to a remote host.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

원격 호스트 연결에 대한 비동기 요청을 시작합니다.Begins an asynchronous request for a connection to a remote host.

Disconnect(Boolean)

소켓 연결을 닫고 소켓을 다시 사용할 수 있도록 합니다.Closes the socket connection and allows reuse of the socket.

DisconnectAsync(SocketAsyncEventArgs)

원격 엔드포인트와의 연결을 끊는 비동기 요청을 시작합니다.Begins an asynchronous request to disconnect from a remote endpoint.

Dispose()

Socket 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of the Socket class.

Dispose(Boolean)

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

DuplicateAndClose(Int32)

대상 프로세스에 대한 소켓 참조를 복제하고 이 프로세스의 소켓을 닫습니다.Duplicates the socket reference for the target process, and closes the socket for this process.

EndAccept(Byte[], IAsyncResult)

들어오는 연결 시도를 비동기적으로 받아들이고 원격 호스트 통신을 처리할 새 Socket 개체를 만듭니다.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. 이 메서드는 전송된 초기 데이터가 들어 있는 버퍼를 반환합니다.This method returns a buffer that contains the initial data transferred.

EndAccept(Byte[], Int32, IAsyncResult)

들어오는 연결 시도를 비동기적으로 받아들이고 원격 호스트 통신을 처리할 새 Socket 개체를 만듭니다.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. 이 메서드는 전송된 초기 데이터와 바이트 수가 들어 있는 버퍼를 반환합니다.This method returns a buffer that contains the initial data and the number of bytes transferred.

EndAccept(IAsyncResult)

들어오는 연결 시도를 비동기적으로 받아들이고 원격 호스트 통신을 처리할 새로운 Socket을 만듭니다.Asynchronously accepts an incoming connection attempt and creates a new Socket to handle remote host communication.

EndConnect(IAsyncResult)

보류 중인 비동기 연결 요청을 끝냅니다.Ends a pending asynchronous connection request.

EndDisconnect(IAsyncResult)

보류 중인 비동기 연결 끊기 요청을 끝냅니다.Ends a pending asynchronous disconnect request.

EndReceive(IAsyncResult)

보류 중인 비동기 읽기를 끝냅니다.Ends a pending asynchronous read.

EndReceive(IAsyncResult, SocketError)

보류 중인 비동기 읽기를 끝냅니다.Ends a pending asynchronous read.

EndReceiveFrom(IAsyncResult, EndPoint)

특정 엔드포인트에서 보류 중인 비동기 읽기를 끝냅니다.Ends a pending asynchronous read from a specific endpoint.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

특정 엔드포인트에서 보류 중인 비동기 읽기를 끝냅니다.Ends a pending asynchronous read from a specific endpoint. 또한 이 메서드는 패킷에 대해 EndReceiveFrom(IAsyncResult, EndPoint)이 제공하는 것보다 많은 정보를 제공합니다.This method also reveals more information about the packet than EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

보류 중인 비동기 보내기를 끝냅니다.Ends a pending asynchronous send.

EndSend(IAsyncResult, SocketError)

보류 중인 비동기 보내기를 끝냅니다.Ends a pending asynchronous send.

EndSendFile(IAsyncResult)

보류 중인 비동기 파일 보내기를 끝냅니다.Ends a pending asynchronous send of a file.

EndSendTo(IAsyncResult)

특정 위치로의 보류 중인 비동기 보내기를 끝냅니다.Ends a pending asynchronous send to a specific location.

Equals(Object)

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

(다음에서 상속됨 Object)
Finalize()

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

GetHashCode()

Socket 인스턴스에 대한 해시 값을 반환합니다.Returns a hash value for a Socket instance.

GetSocketOption(SocketOptionLevel, SocketOptionName)

개체로 나타내는 지정된 Socket 옵션 값을 반환합니다.Returns the value of a specified Socket option, represented as an object.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

바이트 배열로 나타내는 지정된 Socket 옵션 설정을 반환합니다.Returns the specified Socket option setting, represented as a byte array.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

배열의 지정된 Socket 옵션 값을 반환합니다.Returns the value of the specified Socket option in an array.

GetType()

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

(다음에서 상속됨 Object)
IOControl(Int32, Byte[], Byte[])

숫자 컨트롤 코드를 사용하여 Socket의 하위 수준 운영 모드를 설정합니다.Sets low-level operating modes for the Socket using numerical control codes.

IOControl(IOControlCode, Byte[], Byte[])

Socket 열거형으로 컨트롤 코드를 지정하여 IOControlCode의 하위 수준 운영 모드를 설정합니다.Sets low-level operating modes for the Socket using the IOControlCode enumeration to specify control codes.

Listen(Int32)

Socket을 수신 상태로 둡니다.Places a Socket in a listening state.

MemberwiseClone()

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

(다음에서 상속됨 Object)
Poll(Int32, SelectMode)

Socket의 상태를 결정합니다.Determines the status of the Socket.

Receive(Byte[])

수신 버퍼에 바인딩된 Socket의 데이터를 받습니다.Receives data from a bound Socket into a receive buffer.

Receive(Byte[], Int32, Int32, SocketFlags)

지정된 Socket를 사용하여 수신 버퍼의 특정 오프셋 위치에 바인딩된 SocketFlags의 원하는 바이트 수를 받습니다.Receives the specified number of bytes from a bound Socket into the specified offset position of the receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

지정된 Socket를 사용하여 수신 버퍼에 바인딩된 SocketFlags의 데이터를 받습니다.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, SocketFlags)

지정된 Socket를 사용하여 수신 버퍼에 바인딩된 SocketFlags에서 원하는 바이트 수의 데이터를 받습니다.Receives the specified number of bytes of data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], SocketFlags)

지정된 Socket를 사용하여 수신 버퍼에 바인딩된 SocketFlags의 데이터를 받습니다.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>)

바인딩된 Socket의 데이터를 받아 수신 버퍼 목록에 넣습니다.Receives data from a bound Socket into the list of receive buffers.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

지정된 Socket를 사용하여 바인딩된 SocketFlags의 데이터를 받아 수신 버퍼 목록에 넣습니다.Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

지정된 Socket를 사용하여 바인딩된 SocketFlags의 데이터를 받아 수신 버퍼 목록에 넣습니다.Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(Span<Byte>)

수신 버퍼에 바인딩된 Socket의 데이터를 받습니다.Receives data from a bound Socket into a receive buffer.

Receive(Span<Byte>, SocketFlags)

지정된 Socket를 사용하여 수신 버퍼에 바인딩된 SocketFlags의 데이터를 받습니다.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Span<Byte>, SocketFlags, SocketError)

지정된 Socket를 사용하여 수신 버퍼에 바인딩된 SocketFlags의 데이터를 받습니다.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

ReceiveAsync(SocketAsyncEventArgs)

연결된 Socket 개체에서 데이터를 받기 위해 비동기 요청을 시작합니다.Begins an asynchronous request to receive data from a connected Socket object.

ReceiveFrom(Byte[], EndPoint)

데이터 버퍼에 데이터그램을 받고 엔드포인트를 저장합니다.Receives a datagram into the data buffer and stores the endpoint.

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

지정된 SocketFlags를 사용하여 데이터 버퍼의 지정된 위치에 지정된 바이트 수의 데이터를 수신하고 엔드포인트를 저장합니다.Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

지정된 SocketFlags를 사용하여 데이터 버퍼에 원하는 바이트 수를 받고 엔드포인트를 저장합니다.Receives the specified number of bytes into the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

지정된 SocketFlags를 사용하여 데이터 버퍼에 데이터그램을 받고 엔드포인트를 저장합니다.Receives a datagram into the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFromAsync(SocketAsyncEventArgs)

지정된 네트워크 디바이스에서 비동기적으로 데이터를 받기 시작합니다.Begins to asynchronously receive data from a specified network device.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

지정된 SocketFlags를 사용하여 데이터 버퍼의 지정된 위치에 지정된 바이트 수의 데이터를 수신하고 엔드포인트 및 패킷 정보를 저장합니다.Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

지정된 SocketFlags를 사용하여 원하는 바이트 수의 데이터를 데이터 버퍼의 특정 위치로 받는 비동기 작업을 시작하고 엔드포인트 및 패킷 정보를 저장합니다.Begins to asynchronously receive the specified number of bytes of data into the specified location in the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

Select(IList, IList, IList, Int32)

하나 이상의 소켓 상태를 확인합니다.Determines the status of one or more sockets.

Send(Byte[])

연결된 Socket에 데이터를 보냅니다.Sends data to a connected Socket.

Send(Byte[], Int32, Int32, SocketFlags)

지정된 오프셋에서 시작하고 지정된 SocketFlags를 사용하여 지정된 바이트 수의 데이터를 연결된 Socket으로 전송합니다.Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

지정된 Socket를 사용하여 지정된 오프셋부터 원하는 바이트 수의 데이터를 연결된 SocketFlags에 보냅니다.Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags

Send(Byte[], Int32, SocketFlags)

지정된 Socket를 사용하여 원하는 바이트 수의 데이터를 연결된 SocketFlags에 보냅니다.Sends the specified number of bytes of data to a connected Socket, using the specified SocketFlags.

Send(Byte[], SocketFlags)

지정된 Socket를 사용하여 데이터를 연결된 SocketFlags에 보냅니다.Sends data to a connected Socket using the specified SocketFlags.

Send(IList<ArraySegment<Byte>>)

목록에 있는 버퍼 집합을 연결된 Socket으로 보냅니다.Sends the set of buffers in the list to a connected Socket.

Send(IList<ArraySegment<Byte>>, SocketFlags)

지정된 Socket를 사용하여 목록에 있는 버퍼 집합을 연결된 SocketFlags으로 보냅니다.Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

지정된 Socket를 사용하여 목록에 있는 버퍼 집합을 연결된 SocketFlags으로 보냅니다.Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(ReadOnlySpan<Byte>)

연결된 Socket에 데이터를 보냅니다.Sends data to a connected Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

지정된 Socket를 사용하여 데이터를 연결된 SocketFlags에 보냅니다.Sends data to a connected Socket using the specified SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

지정된 Socket를 사용하여 데이터를 연결된 SocketFlags에 보냅니다.Sends data to a connected Socket using the specified SocketFlags.

SendAsync(SocketAsyncEventArgs)

데이터를 연결된 Socket 개체에 비동기적으로 보냅니다.Sends data asynchronously to a connected Socket object.

SendFile(String)

Socket 전송 플래그를 사용하여 fileName 파일을 연결된 UseDefaultWorkerThread 개체에 보냅니다.Sends the file fileName to a connected Socket object with the UseDefaultWorkerThread transmit flag.

SendFile(String, Byte[], Byte[], TransmitFileOptions)

지정된 TransmitFileOptions 값을 사용하여 연결된 Socket 개체에 파일 fileName 및 데이터 버퍼를 전송합니다.Sends the file fileName and buffers of data to a connected Socket object using the specified TransmitFileOptions value.

SendPacketsAsync(SocketAsyncEventArgs)

파일 컬렉션 또는 메모리 내 데이터 버퍼를 연결된 Socket 개체에 비동기적으로 보냅니다.Sends a collection of files or in memory data buffers asynchronously to a connected Socket object.

SendTo(Byte[], EndPoint)

지정된 엔드포인트에 데이터를 보냅니다.Sends data to the specified endpoint.

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

버퍼의 지정된 위치에서 시작하여 특정 SocketFlags를 통해 원하는 바이트 수의 데이터를 지정된 엔드포인트로 보냅니다.Sends the specified number of bytes of data to the specified endpoint, starting at the specified location in the buffer, and using the specified SocketFlags.

SendTo(Byte[], Int32, SocketFlags, EndPoint)

지정된 SocketFlags를 사용하여 특정 엔드포인트에 원하는 바이트 수의 데이터를 보냅니다.Sends the specified number of bytes of data to the specified endpoint using the specified SocketFlags.

SendTo(Byte[], SocketFlags, EndPoint)

지정된 SocketFlags를 사용하여 특정 엔드포인트에 데이터를 보냅니다.Sends data to a specific endpoint using the specified SocketFlags.

SendToAsync(SocketAsyncEventArgs)

특정 원격 호스트에 데이터를 비동기적으로 보냅니다.Sends data asynchronously to a specific remote host.

SetIPProtectionLevel(IPProtectionLevel)

소켓에 IP 보호 수준을 설정합니다.Set the IP protection level on a socket.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

지정된 Socket 옵션을 지정된 Boolean 값으로 설정합니다.Sets the specified Socket option to the specified Boolean value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

지정된 Socket 옵션을 바이트 배열로 나타내는 특정 값으로 설정합니다.Sets the specified Socket option to the specified value, represented as a byte array.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

지정된 Socket 옵션을 원하는 정수 값으로 설정합니다.Sets the specified Socket option to the specified integer value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

지정된 Socket 옵션을 개체로 나타내는 특정 값으로 설정합니다.Sets the specified Socket option to the specified value, represented as an object.

Shutdown(SocketShutdown)

Socket에서 보내기 및 받기를 사용할 수 없도록 설정합니다.Disables sends and receives on a Socket.

ToString()

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

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IDisposable.Dispose()

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

확장 메서드

AcceptAsync(Socket)

소켓에서 들어오는 연결 시도를 허용하도록 비동기 작업을 수행합니다.Performs an asynchronous operation on to accept an incoming connection attempt on the socket.

AcceptAsync(Socket, Socket)

소켓에서 들어오는 연결 시도를 허용하도록 비동기 작업을 수행합니다.Performs an asynchronous operation on to accept an incoming connection attempt on the socket.

ConnectAsync(Socket, EndPoint)

원격 호스트에 대한 연결을 설정합니다.Establishes a connection to a remote host.

ConnectAsync(Socket, IPAddress, Int32)

원격 호스트에 대한 연결을 설정합니다.Establishes a connection to a remote host. 호스트는 IP 주소와 포트 번호로 지정됩니다.The host is specified by an IP address and a port number.

ConnectAsync(Socket, IPAddress[], Int32)

원격 호스트에 대한 연결을 설정합니다.Establishes a connection to a remote host. 호스트는 IP 주소의 배열과 포트 번호로 지정됩니다.The host is specified by an array of IP addresses and a port number.

ConnectAsync(Socket, String, Int32)

원격 호스트에 대한 연결을 설정합니다.Establishes a connection to a remote host. 호스트는 호스트 이름과 포트 번호로 지정됩니다.The host is specified by a host name and a port number.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

연결된 소켓에서 데이터를 수신합니다.Receives data from a connected socket.

ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

연결된 소켓에서 데이터를 수신합니다.Receives data from a connected socket.

ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken)

연결된 소켓에서 데이터를 수신합니다.Receives data from a connected socket.

ReceiveFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

지정한 네트워크 디바이스에서 데이터를 수신합니다.Receives data from a specified network device.

ReceiveMessageFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

지정된 SocketFlags를 사용하여 데이터 버퍼의 지정된 위치에 지정된 바이트 수의 데이터를 수신하고 엔드포인트 및 패킷 정보를 저장합니다.Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

데이터를 연결된 소켓으로 전송합니다.Sends data to a connected socket.

SendAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

데이터를 연결된 소켓으로 전송합니다.Sends data to a connected socket.

SendAsync(Socket, ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

데이터를 연결된 소켓으로 전송합니다.Sends data to a connected socket.

SendToAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

특정 원격 호스트에 데이터를 비동기적으로 보냅니다.Sends data asynchronously to a specific remote host.

보안

SocketPermission
나가는 연결을 설정 하거나 들어오는 요청을 수락 합니다.To establish an outgoing connection or accept an incoming request.

적용 대상

스레드 보안

이 클래스의 인스턴스는 스레드로부터 안전 합니다.Instances of this class are thread safe.

추가 정보