Socket 클래스

정의

Berkeley 소켓 인터페이스를 구현합니다.

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

예제

다음 예제에서는 클래스를 Socket 사용하여 데이터를 HTTP 서버로 보내고 표준 출력에 ASCII 응답을 인쇄하는 방법을 보여 줍니다. 다음은 전체 페이지를 받을 때까지 호출 스레드를 차단하는 예제입니다.

private static void SendHttpRequest(Uri? uri = null, int port = 80)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.0
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    socket.Connect(uri.Host, port);

    // Send the request.
    // For the tiny amount of data in this example, the first call to Send() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += socket.Send(requestBytes, bytesSent, requestBytes.Length - bytesSent, SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = socket.Receive(responseBytes);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        Console.Out.Write(responseChars, 0, charCount);
    }
}

다음 예제에서는 작업 기반 비동기 API를 사용하는 동시에 비동기 메서드에 전달하여 CancellationToken 전체 작업을 취소할 수 있도록 하는 동일한 HTTP GET 시나리오를 보여 줍니다.

Tip

Socket일반적으로 힙에 할당된 반환을 CancellationTokenTask사용하지 않는 비동기 메서드입니다. 취소 가능한 오버로드는 항상 ValueTask반환됩니다. 이를 사용하면 고성능 코드에서 할당을 줄이는 데 도움이 됩니다.

private static async Task SendHttpRequestAsync(Uri? uri = null, int port = 80, CancellationToken cancellationToken = default)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.1
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    await socket.ConnectAsync(uri.Host, port, cancellationToken);

    // Send the request.
    // For the tiny amount of data in this example, the first call to SendAsync() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += await socket.SendAsync(requestBytes.AsMemory(bytesSent), SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = await socket.ReceiveAsync(responseBytes, SocketFlags.None, cancellationToken);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        await Console.Out.WriteAsync(responseChars.AsMemory(0, charCount), cancellationToken);
    }
}

설명

이 API에 대한 자세한 내용은 소켓에 대한 추가 API 비고를 참조하세요.

생성자

Name Description
Socket(AddressFamily, SocketType, ProtocolType)

지정된 주소 패밀리, 소켓 유형 및 프로토콜을 사용하여 클래스의 Socket 새 인스턴스를 초기화합니다.

Socket(SafeSocketHandle)

지정된 소켓 핸들에 대한 클래스의 Socket 새 인스턴스를 초기화합니다.

Socket(SocketInformation)

에서 반환Socket된 지정된 값을 사용하여 클래스의 DuplicateAndClose(Int32) 새 인스턴스를 초기화합니다.

Socket(SocketType, ProtocolType)

지정된 소켓 형식 및 프로토콜을 Socket 사용하여 클래스의 새 인스턴스를 초기화합니다. 운영 체제에서 IPv6을 지원하는 경우 이 생성자는 이중 모드 소켓을 만듭니다. 그렇지 않으면 IPv4 소켓을 만듭니다.

속성

Name Description
AddressFamily

의 주소 패밀리를 Socket가져옵니다.

Available

네트워크에서 수신되어 읽을 수 있는 데이터의 양을 가져옵니다.

Blocking

차단 모드에 있는지 여부를 Socket 나타내는 값을 가져오거나 설정합니다.

Connected

마지막 Socket 또는 Send 작업을 기준으로 원격 호스트에 연결되어 있는지 여부를 Receive 나타내는 값을 가져옵니다.

DontFragment

IP(인터넷 프로토콜) 데이터그램을 조각화할 수 있는지 여부를 Socket 지정하는 값을 가져오거나 설정합니다.

DualMode

IPv4 및 IPv6 모두에 사용되는 이중 모드 소켓인지 여부를 Socket 지정하는 값을 가져오거나 설정합니다.

EnableBroadcast

브로드캐스트 패킷을 Boolean 보낼 수 있는지 여부를 Socket 지정하는 값을 가져오거나 설정합니다.

ExclusiveAddressUse

하나의 프로세스만 포트에 Socket 바인딩할 수 있는지 여부를 나타내는 값을 가져오거나 설정합니다.

Handle

에 대한 운영 체제 핸들을 Socket가져옵니다.

IsBound

특정 로컬 포트에 Socket 바인딩되는지 여부를 나타내는 값을 가져옵니다.

LingerState

보류 중인 모든 데이터를 보내기 위해 소켓 닫기를 지연할지 여부를 Socket 지정하는 값을 가져오거나 설정합니다.

LocalEndPoint

로컬 엔드포인트를 가져옵니다.

MulticastLoopback

보내는 멀티캐스트 패킷이 보내는 애플리케이션에 배달되는지 여부를 지정하는 값을 가져오거나 설정합니다.

NoDelay

스트림 Boolean 이 Nagle 알고리즘을 Socket 사용하는지 여부를 지정하는 값을 가져오거나 설정합니다.

OSSupportsIPv4

기본 운영 체제 및 네트워크 어댑터가 IPv4(인터넷 프로토콜 버전 4)를 지원하는지 여부를 나타냅니다.

OSSupportsIPv6

기본 운영 체제 및 네트워크 어댑터가 IPv6(인터넷 프로토콜 버전 6)을 지원하는지 여부를 나타냅니다.

OSSupportsUnixDomainSockets

기본 운영 체제가 Unix 도메인 소켓을 지원하는지 여부를 나타냅니다.

ProtocolType

의 프로토콜 형식을 가져옵니다 Socket.

ReceiveBufferSize

의 수신 버퍼 Socket크기를 지정하는 값을 가져오거나 설정합니다.

ReceiveTimeout

동기 Receive 호출 시간이 초과되는 시간을 지정하는 값을 가져오거나 설정합니다.

RemoteEndPoint

원격 엔드포인트를 가져옵니다.

SafeHandle

SafeSocketHandle 현재 Socket 개체가 캡슐화하는 소켓 핸들을 나타내는 값을 가져옵니다.

SendBufferSize

의 송신 버퍼 Socket크기를 지정하는 값을 가져오거나 설정합니다.

SendTimeout

동기 Send 호출 시간이 초과되는 시간을 지정하는 값을 가져오거나 설정합니다.

SocketType

Socket형식을 가져옵니다.

SupportsIPv4
사용되지 않음.
사용되지 않음.
사용되지 않음.

현재 호스트에서 IPv4 지원을 사용할 수 있고 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

SupportsIPv6
사용되지 않음.
사용되지 않음.
사용되지 않음.

프레임워크가 사용되지 Dns 않는 특정 멤버에 대해 IPv6을 지원하는지 여부를 나타내는 값을 가져옵니다.

Ttl

에서 보낸 SocketIP(인터넷 프로토콜) 패킷의 TTL(Time To Live) 값을 지정하는 값을 가져오거나 설정합니다.

UseOnlyOverlappedIO
사용되지 않음.

소켓이 겹치는 I/O 모드만 사용해야 하는지 여부를 지정하는 값을 가져오거나 설정합니다. .NET 5 이상(.NET Core 버전 포함)에서 값은 항상 false.

메서드

Name Description
Accept()

새로 만든 연결에 대한 새 Socket 연결을 만듭니다.

AcceptAsync()

들어오는 연결을 허용합니다.

AcceptAsync(CancellationToken)

들어오는 연결을 허용합니다.

AcceptAsync(Socket, CancellationToken)

들어오는 연결을 허용합니다.

AcceptAsync(Socket)

들어오는 연결을 허용합니다.

AcceptAsync(SocketAsyncEventArgs)

들어오는 연결 시도를 수락하는 비동기 작업을 시작합니다.

BeginAccept(AsyncCallback, Object)

들어오는 연결 시도를 수락하는 비동기 작업을 시작합니다.

BeginAccept(Int32, AsyncCallback, Object)

들어오는 연결 시도를 수락하는 비동기 작업을 시작하고 클라이언트 애플리케이션에서 보낸 첫 번째 데이터 블록을 받습니다.

BeginAccept(Socket, Int32, AsyncCallback, Object)

지정된 소켓에서 들어오는 연결 시도를 수락하는 비동기 작업을 시작하고 클라이언트 애플리케이션에서 보낸 첫 번째 데이터 블록을 받습니다.

BeginConnect(EndPoint, AsyncCallback, Object)

원격 호스트 연결에 대한 비동기 요청을 시작합니다.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

원격 호스트 연결에 대한 비동기 요청을 시작합니다. 호스트는 포트 번호와 포트 번호로 지정됩니다 IPAddress .

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

원격 호스트 연결에 대한 비동기 요청을 시작합니다. 호스트는 배열 및 포트 번호로 지정됩니다 IPAddress .

BeginConnect(String, Int32, AsyncCallback, Object)

원격 호스트 연결에 대한 비동기 요청을 시작합니다. 호스트는 호스트 이름 및 포트 번호로 지정됩니다.

BeginDisconnect(Boolean, AsyncCallback, Object)

원격 엔드포인트에서 연결을 끊기 위한 비동기 요청을 시작합니다.

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

연결된 Socket데이터에서 비동기적으로 데이터를 수신하기 시작합니다.

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

연결된 Socket데이터에서 비동기적으로 데이터를 수신하기 시작합니다.

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

연결된 Socket데이터에서 비동기적으로 데이터를 수신하기 시작합니다.

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

연결된 Socket데이터에서 비동기적으로 데이터를 수신하기 시작합니다.

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

지정된 네트워크 디바이스에서 데이터를 비동기적으로 수신하기 시작합니다.

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

지정된 데이터를 사용하여 데이터 버퍼 SocketFlags의 지정된 위치에 지정된 바이트 수를 비동기적으로 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

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

연결된 Socket에 데이터를 비동기적으로 보냅니다.

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

연결된 Socket에 데이터를 비동기적으로 보냅니다.

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

연결된 Socket에 데이터를 비동기적으로 보냅니다.

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

연결된 Socket에 데이터를 비동기적으로 보냅니다.

BeginSendFile(String, AsyncCallback, Object)

플래그를 사용하여 연결된 fileName 개체에 파일을 Socket 보냅니다UseDefaultWorkerThread.

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

연결된 Socket 개체에 비동기적으로 파일 및 데이터 버퍼를 보냅니다.

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

데이터를 특정 원격 호스트에 비동기적으로 보냅니다.

Bind(EndPoint)

Socket 로컬 엔드포인트와 연결합니다.

CancelConnectAsync(SocketAsyncEventArgs)

원격 호스트 연결에 대한 비동기 요청을 취소합니다.

Close()

Socket 연결을 닫고 연결된 모든 리소스를 해제합니다.

Close(Int32)

Socket 연결을 닫고 지정된 시간 제한으로 연결된 모든 리소스를 해제하여 큐에 대기된 데이터를 보낼 수 있도록 합니다.

Connect(EndPoint)

원격 호스트에 대한 연결을 설정합니다.

Connect(IPAddress, Int32)

원격 호스트에 대한 연결을 설정합니다. 호스트는 IP 주소 및 포트 번호로 지정됩니다.

Connect(IPAddress[], Int32)

원격 호스트에 대한 연결을 설정합니다. 호스트는 IP 주소 및 포트 번호의 배열에 의해 지정됩니다.

Connect(String, Int32)

원격 호스트에 대한 연결을 설정합니다. 호스트는 호스트 이름 및 포트 번호로 지정됩니다.

ConnectAsync(EndPoint, CancellationToken)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(EndPoint)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(IPAddress, Int32, CancellationToken)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(IPAddress, Int32)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(IPAddress[], Int32, CancellationToken)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(IPAddress[], Int32)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(SocketAsyncEventArgs)

원격 호스트에 대한 연결에 대한 비동기 요청을 시작합니다.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm)

Berkeley 소켓 인터페이스를 구현합니다.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

원격 호스트에 대한 연결에 대한 비동기 요청을 시작합니다.

ConnectAsync(String, Int32, CancellationToken)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(String, Int32)

원격 호스트에 대한 연결을 설정합니다.

Disconnect(Boolean)

소켓 연결을 닫고 소켓을 다시 사용할 수 있습니다.

DisconnectAsync(Boolean, CancellationToken)

원격 호스트에서 연결된 소켓의 연결을 끊습니다.

DisconnectAsync(SocketAsyncEventArgs)

원격 엔드포인트에서 연결을 끊기 위한 비동기 요청을 시작합니다.

Dispose()

Socket 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

Dispose(Boolean)

관리되지 않는 리소스를 Socket해제하고 관리되는 리소스를 선택적으로 삭제합니다.

DuplicateAndClose(Int32)

대상 프로세스에 대한 소켓 참조를 복제하고 이 프로세스의 소켓을 닫습니다.

EndAccept(Byte[], IAsyncResult)

들어오는 연결 시도를 비동기적으로 수락하고 원격 호스트 통신을 처리하는 새 Socket 개체를 만듭니다. 이 메서드는 전송된 초기 데이터가 포함된 버퍼를 반환합니다.

EndAccept(Byte[], Int32, IAsyncResult)

들어오는 연결 시도를 비동기적으로 수락하고 원격 호스트 통신을 처리하는 새 Socket 개체를 만듭니다. 이 메서드는 초기 데이터와 전송된 바이트 수를 포함하는 버퍼를 반환합니다.

EndAccept(IAsyncResult)

들어오는 연결 시도를 비동기적으로 수락하고 원격 호스트 통신을 처리하는 새 Socket 연결을 만듭니다.

EndConnect(IAsyncResult)

보류 중인 비동기 연결 요청을 종료합니다.

EndDisconnect(IAsyncResult)

보류 중인 비동기 연결 끊기 요청을 종료합니다.

EndReceive(IAsyncResult, SocketError)

보류 중인 비동기 읽기를 종료합니다.

EndReceive(IAsyncResult)

보류 중인 비동기 읽기를 종료합니다.

EndReceiveFrom(IAsyncResult, EndPoint)

특정 엔드포인트에서 보류 중인 비동기 읽기를 종료합니다.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

특정 엔드포인트에서 보류 중인 비동기 읽기를 종료합니다. 또한 이 메서드는 패킷 EndReceiveFrom(IAsyncResult, EndPoint)에 대한 자세한 정보를 표시합니다.

EndSend(IAsyncResult, SocketError)

보류 중인 비동기 보내기를 종료합니다.

EndSend(IAsyncResult)

보류 중인 비동기 보내기를 종료합니다.

EndSendFile(IAsyncResult)

보류 중인 비동기 파일 보내기를 종료합니다.

EndSendTo(IAsyncResult)

보류 중인 비동기 보내기를 특정 위치로 종료합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

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

클래스에서 사용하는 리소스를 해제합니다 Socket .

GetHashCode()

인스턴스의 해시 값을 반환합니다 Socket .

GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

플랫폼별 수준 및 이름 식별자를 사용하여 소켓 옵션 값을 가져옵니다.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

바이트 배열로 표시된 지정된 Socket 옵션 설정을 반환합니다.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

배열에서 지정된 Socket 옵션의 값을 반환합니다.

GetSocketOption(SocketOptionLevel, SocketOptionName)

개체로 표시된 지정된 Socket 옵션의 값을 반환합니다.

GetType()

현재 인스턴스의 Type 가져옵니다.

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

숫자 컨트롤 코드 사용에 대한 Socket 하위 수준 운영 모드를 설정합니다.

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

열거형을 사용하여 제어 코드를 지정하는 하위 Socket 수준 작동 모드 IOControlCode 를 설정합니다.

Listen()

수신 대기 상태에 배치합니다 Socket .

Listen(Int32)

수신 대기 상태에 배치합니다 Socket .

MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

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

의 상태를 Socket확인합니다.

Poll(TimeSpan, SelectMode)

의 상태를 Socket확인합니다.

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

지정된 을 사용하여 바인딩 Socket 된 버퍼에서 수신 버퍼로 데이터를 받습니다 SocketFlags.

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

지정된 바이트를 사용하여 Socket바인딩 SocketFlags 된 바이트 수를 수신 버퍼의 지정된 오프셋 위치로 받습니다.

Receive(Byte[], Int32, SocketFlags)

지정된 값을 사용하여 Socket바인딩 SocketFlags 된 데이터에서 수신 버퍼로 지정된 바이트 수를 받습니다.

Receive(Byte[], SocketFlags)

지정된 을 사용하여 바인딩 Socket 된 버퍼에서 수신 버퍼로 데이터를 받습니다 SocketFlags.

Receive(Byte[])

바인딩 Socket 된 데이터에서 수신 버퍼로 데이터를 수신합니다.

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

지정된 Socket을 사용하여 바인딩 SocketFlags 된 데이터에서 수신 버퍼 목록으로 데이터를 받습니다.

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

지정된 Socket을 사용하여 바인딩 SocketFlags 된 데이터에서 수신 버퍼 목록으로 데이터를 받습니다.

Receive(IList<ArraySegment<Byte>>)

바인딩 Socket 된 데이터에서 수신 버퍼 목록으로 데이터를 수신합니다.

Receive(Span<Byte>, SocketFlags, SocketError)

지정된 을 사용하여 바인딩 Socket 된 버퍼에서 수신 버퍼로 데이터를 받습니다 SocketFlags.

Receive(Span<Byte>, SocketFlags)

지정된 을 사용하여 바인딩 Socket 된 버퍼에서 수신 버퍼로 데이터를 받습니다 SocketFlags.

Receive(Span<Byte>)

바인딩 Socket 된 데이터에서 수신 버퍼로 데이터를 수신합니다.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

연결된 소켓에서 데이터를 받습니다.

ReceiveAsync(ArraySegment<Byte>)

연결된 소켓에서 데이터를 받습니다.

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

연결된 소켓에서 데이터를 받습니다.

ReceiveAsync(IList<ArraySegment<Byte>>)

연결된 소켓에서 데이터를 받습니다.

ReceiveAsync(Memory<Byte>, CancellationToken)

연결된 소켓에서 데이터를 받습니다.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

연결된 소켓에서 데이터를 받습니다.

ReceiveAsync(SocketAsyncEventArgs)

연결된 Socket 개체에서 데이터를 수신하기 위한 비동기 요청을 시작합니다.

ReceiveFrom(Byte[], EndPoint)

데이터 버퍼에 데이터그램을 수신하고 엔드포인트를 저장합니다.

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

지정된 데이터 버퍼를 사용하여 SocketFlags지정된 데이터 바이트 수를 데이터 버퍼의 지정된 위치에 수신하고 엔드포인트를 저장합니다.

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

지정된 바이트를 사용하여 데이터 버퍼에 지정된 SocketFlags바이트 수를 수신하고 엔드포인트를 저장합니다.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

지정된 SocketFlags값을 사용하여 데이터그램을 데이터 버퍼에 수신하고 엔드포인트를 저장합니다.

ReceiveFrom(Span<Byte>, EndPoint)

데이터 버퍼에 데이터그램을 수신하고 엔드포인트를 저장합니다.

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

지정된 SocketFlags값을 사용하여 데이터그램을 데이터 버퍼에 수신하고 엔드포인트를 저장합니다.

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

지정된 SocketFlags값을 사용하여 데이터그램을 데이터 버퍼에 수신하고 엔드포인트를 저장합니다.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

데이터를 수신하고 송신 호스트의 엔드포인트를 반환합니다.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

데이터를 수신하고 송신 호스트의 엔드포인트를 반환합니다.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

데이터를 수신하고 송신 호스트의 엔드포인트를 반환합니다.

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

데이터를 수신하고 송신 호스트의 엔드포인트를 반환합니다.

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

지정된 SocketFlags값을 사용하여 데이터그램을 데이터 버퍼에 수신하고 엔드포인트를 저장합니다.

ReceiveFromAsync(SocketAsyncEventArgs)

지정된 네트워크 디바이스에서 데이터를 비동기적으로 수신하기 시작합니다.

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

지정된 데이터 버퍼를 사용하여 SocketFlags지정된 데이터 바이트 수를 데이터 버퍼의 지정된 위치에 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

지정된 데이터 버퍼를 사용하여 socketFlags지정된 데이터 바이트 수를 데이터 버퍼의 지정된 위치에 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

데이터를 수신하고 메시지 보낸 사람에 대한 추가 정보를 반환합니다.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

데이터를 수신하고 메시지 보낸 사람에 대한 추가 정보를 반환합니다.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

데이터를 수신하고 메시지 보낸 사람에 대한 추가 정보를 반환합니다.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

데이터를 수신하고 메시지 보낸 사람에 대한 추가 정보를 반환합니다.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

지정된 데이터를 사용하여 SocketFlags데이터 버퍼의 지정된 위치에 지정된 바이트 수를 비동기적으로 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

Select(IList, IList, IList, Int32)

하나 이상의 소켓 상태를 결정합니다.

Select(IList, IList, IList, TimeSpan)

하나 이상의 소켓 상태를 결정합니다.

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

지정된 오프셋에서 시작하여 지정된 오프셋을 사용하여 Socket지정된 바이트 수의 데이터를 연결된 SocketFlags데이터로 보냅니다.

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

지정된 오프셋에서 시작하여 지정된 오프셋을 사용하여 Socket지정된 바이트 수의 데이터를 연결된 SocketFlags데이터로 보냅니다.

Send(Byte[], Int32, SocketFlags)

지정된 데이터를 사용하여 Socket지정된 바이트 수의 데이터를 연결된 SocketFlags데이터로 보냅니다.

Send(Byte[], SocketFlags)

지정된 Socket을 사용하여 연결된 SocketFlags 데이터로 데이터를 보냅니다.

Send(Byte[])

연결된 Socket에 데이터를 보냅니다.

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

지정된 Socket버퍼를 사용하여 목록에 있는 버퍼 집합을 연결된 SocketFlags버퍼로 보냅니다.

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

지정된 Socket버퍼를 사용하여 목록에 있는 버퍼 집합을 연결된 SocketFlags버퍼로 보냅니다.

Send(IList<ArraySegment<Byte>>)

목록의 버퍼 집합을 연결된 Socket버퍼로 보냅니다.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

지정된 Socket을 사용하여 연결된 SocketFlags 데이터로 데이터를 보냅니다.

Send(ReadOnlySpan<Byte>, SocketFlags)

지정된 Socket을 사용하여 연결된 SocketFlags 데이터로 데이터를 보냅니다.

Send(ReadOnlySpan<Byte>)

연결된 Socket에 데이터를 보냅니다.

SendAsync(ArraySegment<Byte>, SocketFlags)

연결된 소켓에 데이터를 보냅니다.

SendAsync(ArraySegment<Byte>)

연결된 소켓에 데이터를 보냅니다.

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

연결된 소켓에 데이터를 보냅니다.

SendAsync(IList<ArraySegment<Byte>>)

연결된 소켓에 데이터를 보냅니다.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

연결된 소켓에 데이터를 보냅니다.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

연결된 소켓에 데이터를 보냅니다.

SendAsync(SocketAsyncEventArgs)

연결된 Socket 개체에 데이터를 비동기적으로 보냅니다.

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

지정된 fileName 값을 사용하여 연결된 Socket 개체에 데이터 파일 TransmitFileOptions 및 버퍼를 보냅니다.

SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions)

지정된 fileName 값을 사용하여 연결된 Socket 개체에 데이터 파일 TransmitFileOptions 및 버퍼를 보냅니다.

SendFile(String)

전송 플래그를 사용하여 연결된 fileName 개체에 Socket 파일을 UseDefaultWorkerThread 보냅니다.

SendFileAsync(String, CancellationToken)

파일을 fileName 연결된 Socket 개체로 보냅니다.

SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken)

지정된 fileName 값을 사용하여 연결된 Socket 개체에 데이터 파일 TransmitFileOptions 및 버퍼를 보냅니다.

SendPacketsAsync(SocketAsyncEventArgs)

파일 컬렉션 또는 메모리 데이터 버퍼의 컬렉션을 연결된 Socket 개체에 비동기적으로 보냅니다.

SendTo(Byte[], EndPoint)

지정된 엔드포인트로 데이터를 보냅니다.

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

지정된 데이터 바이트 수를 지정된 엔드포인트로 보내고, 버퍼의 지정된 위치에서 시작하여 지정된 SocketFlags엔드포인트를 사용합니다.

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

지정된 데이터를 사용하여 지정된 엔드포인트 SocketFlags에 지정된 바이트 수를 보냅니다.

SendTo(Byte[], SocketFlags, EndPoint)

지정된 SocketFlags을 사용하여 특정 엔드포인트로 데이터를 보냅니다.

SendTo(ReadOnlySpan<Byte>, EndPoint)

지정된 엔드포인트로 데이터를 보냅니다.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

지정된 SocketFlags을 사용하여 특정 엔드포인트로 데이터를 보냅니다.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

지정된 SocketFlags을 사용하여 특정 엔드포인트로 데이터를 보냅니다.

SendToAsync(ArraySegment<Byte>, EndPoint)

지정된 원격 호스트로 데이터를 보냅니다.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

지정된 원격 호스트로 데이터를 보냅니다.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

지정된 원격 호스트로 데이터를 보냅니다.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

지정된 원격 호스트로 데이터를 보냅니다.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

지정된 SocketFlags을 사용하여 특정 엔드포인트로 데이터를 보냅니다.

SendToAsync(SocketAsyncEventArgs)

데이터를 특정 원격 호스트에 비동기적으로 보냅니다.

SetIPProtectionLevel(IPProtectionLevel)

소켓에서 IP 보호 수준을 설정합니다.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

플랫폼별 수준 및 이름 식별자를 사용하여 소켓 옵션 값을 설정합니다.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

지정된 옵션을 지정된 Socket 값으로 Boolean 설정합니다.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

지정된 Socket 옵션을 바이트 배열로 표시된 지정된 값으로 설정합니다.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

지정된 옵션을 지정된 Socket 정수 값으로 설정합니다.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

지정된 Socket 옵션을 개체로 표시된 지정된 값으로 설정합니다.

Shutdown(SocketShutdown)

에서 송신 및 수신을 Socket사용하지 않도록 설정합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

Name Description
IDisposable.Dispose()

이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다.

에서 사용하는 모든 리소스를 Socket해제합니다.

확장명 메서드

Name Description
AcceptAsync(Socket, Socket)

소켓에서 들어오는 연결 시도를 수락하기 위해 비동기 작업을 수행합니다.

AcceptAsync(Socket)

소켓에서 들어오는 연결 시도를 수락하기 위해 비동기 작업을 수행합니다.

ConnectAsync(Socket, EndPoint, CancellationToken)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(Socket, EndPoint)

원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

IP 주소 및 포트 번호로 지정된 원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(Socket, IPAddress, Int32)

원격 호스트에 대한 연결을 설정합니다. 호스트는 IP 주소 및 포트 번호로 지정됩니다.

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

IP 주소 배열 및 포트 번호로 지정된 원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(Socket, IPAddress[], Int32)

원격 호스트에 대한 연결을 설정합니다. 호스트는 IP 주소 및 포트 번호의 배열에 의해 지정됩니다.

ConnectAsync(Socket, String, Int32, CancellationToken)

호스트 이름 및 포트 번호로 지정된 원격 호스트에 대한 연결을 설정합니다.

ConnectAsync(Socket, String, Int32)

원격 호스트에 대한 연결을 설정합니다. 호스트는 호스트 이름 및 포트 번호로 지정됩니다.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

연결된 소켓에서 데이터를 받습니다.

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

연결된 소켓에서 데이터를 받습니다.

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

연결된 소켓에서 데이터를 받습니다.

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

지정된 네트워크 디바이스에서 데이터를 받습니다.

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

지정된 데이터 버퍼를 사용하여 SocketFlags지정된 데이터 바이트 수를 데이터 버퍼의 지정된 위치에 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

데이터를 연결된 소켓으로 전송합니다.

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

데이터를 연결된 소켓으로 전송합니다.

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

데이터를 연결된 소켓으로 전송합니다.

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

데이터를 특정 원격 호스트에 비동기적으로 보냅니다.

적용 대상

스레드 보안

인스턴스에서 동시에 Socket 송신 및 수신 작업을 수행하는 것이 안전하지만 여러 송신 또는 여러 수신 호출을 동시에 발급하는 것은 권장되지 않습니다. 기본 플랫폼 구현에 따라 대규모 또는 다중 버퍼 송신 또는 수신에 대한 의도하지 않은 데이터 인터리빙이 발생할 수 있습니다.

추가 정보