Socket.BeginSend 메서드

정의

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

오버로드

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

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

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

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

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

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

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

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

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

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

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

public:
 IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

매개 변수

buffers
IList<ArraySegment<Byte>>

보낼 데이터를 포함하는 Byte 형식의 배열입니다.

socketFlags
SocketFlags

SocketFlags 값의 비트 조합입니다.

callback
AsyncCallback

AsyncCallback 대리자입니다.

state
Object

이 요청에 대한 상태 정보를 포함하는 개체입니다.

반환

비동기 보내기를 참조하는 IAsyncResult입니다.

예외

buffers이(가) null인 경우

buffers가 비어 있는 경우

.NET Framework 및 .NET 5 이하만 해당: 소켓에 액세스하려고 할 때 오류가 발생했습니다. 아래의 설명 부분을 참조하십시오.

Socket이 닫혔습니다.

설명

중요

호환성 API입니다. 새 개발에 APM (Begin*End*) 메서드를 사용하지 않는 것이 좋습니다. 대신 기반 등가 Task를 사용합니다.

를 구현하는 콜백을 AsyncCallbackBeginSend 전달하여 작업 완료에 대한 알림을 받을 수 있습니다. 기본 네트워크 스택이 동기적으로 작업을 완료하는 경우 를 호출 BeginSend하는 동안 콜백이 인라인으로 실행됩니다. 이 경우 반환 IAsyncResult 된 의 CompletedSynchronously 속성이 로 설정 true 되어 메서드가 동기적으로 완료되었음을 나타냅니다. AsyncState 의 속성을 IAsyncResult 사용하여 메서드에 전달된 상태 개체를 BeginSend 가져옵니다.

메서드를 호출 EndSend 하여 비동 BeginSend 기 작업을 완료해야 합니다. 일반적으로 메서드는 대리자에서 호출됩니다 AsyncCallback . EndSend 는 작업이 완료될 때까지 호출 스레드를 차단합니다.

연결 지향 프로토콜을 위한 것이지만, BeginSend 또는 BeginConnect 메서드를 먼저 호출 Connect 하여 기본 원격 호스트를 설정하는 경우 연결 없는 프로토콜에도 작동합니다. 연결 없는 프로토콜을 사용하고 여러 호스트에 데이터를 보내려는 경우 를 사용해야 BeginSendTo합니다. 를 사용하여 기본 원격 호스트Connect를 설정한 후에도 사용할 BeginSendTo 수 있습니다. 또는 BeginConnect에 대해 다른 호출을 하여 호출 BeginSend 하기 전에 기본 원격 호스트를 Connect 변경할 수도 있습니다. 연결 없는 프로토콜을 사용하면 버퍼의 크기가 기본 서비스 공급자의 최대 패킷 크기를 초과하지 않는지 확인해야 합니다. 이 경우 데이터그램은 전송 BeginSend 되지 않고 을 throw합니다 SocketException.

플래그를 DontRoute 매개 변수로 socketflags 지정하면 보내는 데이터가 라우팅되지 않습니다.

참고

를 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다.

참고

지정된 스레드에서 시작한 모든 I/O는 해당 스레드가 종료될 때 취소됩니다. 작업이 완료되기 전에 스레드가 종료되면 보류 중인 비동기 작업이 실패할 수 있습니다.

참고

state 는 사용자 정의 클래스의 인스턴스화입니다.

참고

전송이 성공적으로 완료되었다고 해서 데이터가 성공적으로 전달되었음을 의미하지는 않습니다. 전송 시스템 내에서 전송할 데이터를 저장할 수 있는 버퍼 공간이 없는 경우 소켓이 차단 해제 모드에 배치되지 않는 한 전송이 차단됩니다.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

참고

실행 컨텍스트(보안 컨텍스트, 가장된 사용자 및 호출 컨텍스트)는 비동 Socket 기 메서드에 대해 캐시됩니다. 특정 컨텍스트(특정 비동 Socket 기 메서드, 특정 instance 및 특정 Socket 콜백)를 처음 사용한 후 해당 컨텍스트를 나중에 사용하면 성능이 향상됩니다.

추가 정보

적용 대상

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

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

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

public:
 IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

매개 변수

buffers
IList<ArraySegment<Byte>>

보낼 데이터를 포함하는 Byte 형식의 배열입니다.

socketFlags
SocketFlags

SocketFlags 값의 비트 조합입니다.

errorCode
SocketError

소켓 오류를 저장하는 SocketError 개체입니다.

callback
AsyncCallback

AsyncCallback 대리자입니다.

state
Object

이 요청에 대한 상태 정보를 포함하는 개체입니다.

반환

비동기 보내기를 참조하는 IAsyncResult입니다.

예외

buffers이(가) null인 경우

buffers가 비어 있는 경우

.NET Framework 및 .NET 5 이하만 해당: 소켓에 액세스하려고 할 때 오류가 발생했습니다. 아래의 설명 부분을 참조하십시오.

Socket이 닫혔습니다.

설명

중요

호환성 API입니다. 새 개발에 APM (Begin*End*) 메서드를 사용하지 않는 것이 좋습니다. 대신 기반 등가 Task를 사용합니다.

를 구현하는 콜백을 AsyncCallbackBeginSend 전달하여 작업 완료에 대한 알림을 받을 수 있습니다. 기본 네트워크 스택이 동기적으로 작업을 완료하는 경우 를 호출 BeginSend하는 동안 콜백이 인라인으로 실행됩니다. 이 경우 반환 IAsyncResult 된 의 CompletedSynchronously 속성이 로 설정 true 되어 메서드가 동기적으로 완료되었음을 나타냅니다. AsyncState 의 속성을 IAsyncResult 사용하여 메서드에 전달된 상태 개체를 BeginSend 가져옵니다.

메서드를 호출 EndSend 하여 비동 BeginSend 기 작업을 완료해야 합니다. 일반적으로 메서드는 대리자에서 호출됩니다 AsyncCallback . EndSend 는 작업이 완료될 때까지 호출 스레드를 차단합니다.

연결 지향 프로토콜을 위한 것이지만, BeginSend 또는 BeginConnect 메서드를 먼저 호출 Connect 하여 기본 원격 호스트를 설정하는 경우 연결 없는 프로토콜에도 작동합니다. 연결 없는 프로토콜을 사용하고 여러 호스트에 데이터를 보내려는 경우 를 사용해야 BeginSendTo합니다. 를 사용하여 기본 원격 호스트Connect를 설정한 후에도 사용할 BeginSendTo 수 있습니다. 또는 BeginConnect에 대해 다른 호출을 하여 호출 BeginSend 하기 전에 기본 원격 호스트를 Connect 변경할 수도 있습니다. 연결 없는 프로토콜을 사용하면 버퍼의 크기가 기본 서비스 공급자의 최대 패킷 크기를 초과하지 않는지 확인해야 합니다. 이 경우 데이터그램은 전송 BeginSend 되지 않고 을 throw합니다 SocketException.

플래그를 DontRoute 매개 변수로 socketflags 지정하면 보내는 데이터가 라우팅되지 않습니다.

참고

를 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다.

참고

지정된 스레드에서 시작한 모든 I/O는 해당 스레드가 종료될 때 취소됩니다. 작업이 완료되기 전에 스레드가 종료되면 보류 중인 비동기 작업이 실패할 수 있습니다.

참고

state 는 사용자 정의 클래스의 인스턴스화입니다.

참고

전송이 성공적으로 완료되었다고 해서 데이터가 성공적으로 전달되었음을 의미하지는 않습니다. 전송 시스템 내에서 전송할 데이터를 저장할 수 있는 버퍼 공간이 없는 경우 소켓이 차단 해제 모드에 배치되지 않는 한 전송이 차단됩니다.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

참고

실행 컨텍스트(보안 컨텍스트, 가장된 사용자 및 호출 컨텍스트)는 비동 Socket 기 메서드에 대해 캐시됩니다. 특정 컨텍스트(특정 비동 Socket 기 메서드, 특정 instance 및 특정 Socket 콜백)를 처음 사용한 후 해당 컨텍스트를 나중에 사용하면 성능이 향상됩니다.

추가 정보

적용 대상

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

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

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

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

매개 변수

buffer
Byte[]

보낼 데이터를 포함하는 Byte 형식의 배열입니다.

offset
Int32

데이터 보내기를 시작하기 위한 buffer 매개 변수의 위치(0부터 시작)입니다.

size
Int32

보낼 바이트 수입니다.

socketFlags
SocketFlags

SocketFlags 값의 비트 조합입니다.

callback
AsyncCallback

AsyncCallback 대리자입니다.

state
Object

이 요청에 대한 상태 정보를 포함하는 개체입니다.

반환

비동기 보내기를 참조하는 IAsyncResult입니다.

예외

buffernull입니다.

.NET Framework 및 .NET 5 이하만 해당: 소켓에 액세스하려고 할 때 오류가 발생했습니다. 아래의 설명 부분을 참조하십시오.

offset 가 0보다 작습니다.

또는

offsetbuffer의 길이보다 작은 경우

또는

size 가 0보다 작습니다.

또는

sizebuffer 의 길이에서 offset 매개 변수 값을 뺀 크기보다 큰 경우

Socket이 닫혔습니다.

설명

중요

호환성 API입니다. 새 개발을 위해 APM (Begin*End*) 메서드를 사용하지 않는 것이 좋습니다. 대신 에 기반한 Task등가를 사용합니다.

를 구현하는 콜백을 AsyncCallbackBeginSend 전달하여 작업 완료에 대한 알림을 받을 수 있습니다. 기본 네트워크 스택이 동기적으로 작업을 완료하는 경우 콜백은 를 호출 BeginSend하는 동안 인라인으로 실행됩니다. 이 경우 반환 IAsyncResult 된 의 CompletedSynchronously 속성이 로 설정 true 되어 메서드가 동기적으로 완료되었음을 나타냅니다. 사용 하 여는 의 AsyncStateIAsyncResult 속성을 메서드에 전달 된 상태 개체를 BeginSend 가져옵니다.

메서드를 호출 EndSend 하여 비동 BeginSend 기 작업을 완료해야 합니다. 일반적으로 메서드는 대리자에서 호출됩니다 AsyncCallback . EndSend 는 작업이 완료될 때까지 호출 스레드를 차단합니다.

연결 지향 프로토콜을 위한 것이지만, BeginSend 또는 BeginConnect 메서드를 먼저 호출 Connect 하여 기본 원격 호스트를 설정하는 경우 연결 없는 프로토콜에서도 작동합니다. 연결되지 않은 프로토콜을 사용하고 여러 다른 호스트에 데이터를 보내려는 경우 를 사용해야 BeginSendTo합니다. 를 사용하여 기본 원격 호스트Connect를 설정한 후에도 사용할 BeginSendTo 수 있습니다. 또는 BeginConnect를 다른 호출하여 를 호출 BeginSend 하기 전에 기본 원격 호스트를 Connect 변경할 수도 있습니다. 연결이 없는 프로토콜을 사용하면 버퍼의 크기가 기본 서비스 공급자의 최대 패킷 크기를 초과하지 않는지 확인해야 합니다. 이 경우 데이터그램은 전송 BeginSend 되지 않고 을 throw합니다 SocketException.

플래그를 DontRoute 매개 변수로 socketflags 지정하면 보내는 데이터가 라우팅되지 않습니다.

참고

을 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다.

참고

지정된 스레드에서 시작된 모든 I/O는 해당 스레드가 종료될 때 취소됩니다. 작업이 완료되기 전에 스레드가 종료되면 보류 중인 비동기 작업이 실패할 수 있습니다.

참고

state 는 사용자 정의 클래스의 인스턴스화입니다.

참고

전송이 성공적으로 완료되었다고 해서 데이터가 성공적으로 배달되었음을 의미하지는 않습니다. 전송 시스템 내에서 전송할 데이터를 저장할 버퍼 공간이 없는 경우 소켓이 차단 해제 모드에 배치되지 않는 한 전송이 차단됩니다.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

참고

실행 컨텍스트(보안 컨텍스트, 가장된 사용자 및 호출 컨텍스트)는 비동 Socket 기 메서드에 대해 캐시됩니다. 특정 컨텍스트(특정 비동 Socket 기 메서드, 특정 instance 및 특정 Socket 콜백)를 처음 사용한 후 해당 컨텍스트를 나중에 사용하면 성능이 향상됩니다.

추가 정보

적용 대상

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

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

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

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

매개 변수

buffer
Byte[]

보낼 데이터를 포함하는 Byte 형식의 배열입니다.

offset
Int32

데이터 보내기를 시작하기 위한 buffer 매개 변수의 위치(0부터 시작)입니다.

size
Int32

보낼 바이트 수입니다.

socketFlags
SocketFlags

SocketFlags 값의 비트 조합입니다.

errorCode
SocketError

소켓 오류를 저장하는 SocketError 개체입니다.

callback
AsyncCallback

AsyncCallback 대리자입니다.

state
Object

이 요청에 대한 상태 정보를 포함하는 개체입니다.

반환

비동기 보내기를 참조하는 IAsyncResult입니다.

예외

buffernull입니다.

.NET Framework 및 .NET 5 이하만 해당: 소켓에 액세스하려고 할 때 오류가 발생했습니다. 아래의 설명 부분을 참조하십시오.

offset 가 0보다 작습니다.

또는

offsetbuffer의 길이보다 작은 경우

또는

size 가 0보다 작습니다.

또는

sizebuffer 의 길이에서 offset 매개 변수 값을 뺀 크기보다 큰 경우

Socket이 닫혔습니다.

설명

중요

호환성 API입니다. 새 개발을 위해 APM (Begin*End*) 메서드를 사용하지 않는 것이 좋습니다. 대신 에 기반한 Task등가를 사용합니다.

를 구현하는 콜백을 AsyncCallbackBeginSend 전달하여 작업 완료에 대한 알림을 받을 수 있습니다. 기본 네트워크 스택이 동기적으로 작업을 완료하는 경우 콜백은 를 호출 BeginSend하는 동안 인라인으로 실행됩니다. 이 경우 반환 IAsyncResult 된 의 CompletedSynchronously 속성이 로 설정 true 되어 메서드가 동기적으로 완료되었음을 나타냅니다. 사용 하 여는 의 AsyncStateIAsyncResult 속성을 메서드에 전달 된 상태 개체를 BeginSend 가져옵니다.

메서드를 호출 EndSend 하여 비동 BeginSend 기 작업을 완료해야 합니다. 일반적으로 메서드는 대리자에서 호출됩니다 AsyncCallback . EndSend 는 작업이 완료될 때까지 호출 스레드를 차단합니다.

연결 지향 프로토콜을 위한 것이지만, BeginSend 또는 BeginConnect 메서드를 먼저 호출 Connect 하여 기본 원격 호스트를 설정하는 경우 연결 없는 프로토콜에서도 작동합니다. 연결되지 않은 프로토콜을 사용하고 여러 다른 호스트에 데이터를 보내려는 경우 를 사용해야 BeginSendTo합니다. 를 사용하여 기본 원격 호스트Connect를 설정한 후에도 사용할 BeginSendTo 수 있습니다. 또는 BeginConnect를 다른 호출하여 를 호출 BeginSend 하기 전에 기본 원격 호스트를 Connect 변경할 수도 있습니다. 연결이 없는 프로토콜을 사용하면 버퍼의 크기가 기본 서비스 공급자의 최대 패킷 크기를 초과하지 않는지 확인해야 합니다. 이 경우 데이터그램은 전송 BeginSend 되지 않고 을 throw합니다 SocketException.

플래그를 DontRoute 매개 변수로 socketflags 지정하면 보내는 데이터가 라우팅되지 않습니다.

참고

를 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다.

참고

지정된 스레드에서 시작한 모든 I/O는 해당 스레드가 종료될 때 취소됩니다. 작업이 완료되기 전에 스레드가 종료되면 보류 중인 비동기 작업이 실패할 수 있습니다.

참고

state 는 사용자 정의 클래스의 인스턴스화입니다.

참고

전송이 성공적으로 완료되었다고 해서 데이터가 성공적으로 전달되었음을 의미하지는 않습니다. 전송 시스템 내에서 전송할 데이터를 저장할 수 있는 버퍼 공간이 없는 경우 소켓이 차단 해제 모드에 배치되지 않는 한 전송이 차단됩니다.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

참고

실행 컨텍스트(보안 컨텍스트, 가장된 사용자 및 호출 컨텍스트)는 비동 Socket 기 메서드에 대해 캐시됩니다. 특정 컨텍스트(특정 비동 Socket 기 메서드, 특정 instance 및 특정 Socket 콜백)를 처음 사용한 후 해당 컨텍스트를 나중에 사용하면 성능이 향상됩니다.

추가 정보

적용 대상