Socket.EndConnect(IAsyncResult) 메서드

정의

보류 중인 비동기 연결 요청을 끝냅니다.

public:
 void EndConnect(IAsyncResult ^ asyncResult);
public:
 void EndConnect(IAsyncResult ^ result);
public void EndConnect (IAsyncResult asyncResult);
public void EndConnect (IAsyncResult result);
member this.EndConnect : IAsyncResult -> unit
member this.EndConnect : IAsyncResult -> unit
Public Sub EndConnect (asyncResult As IAsyncResult)
Public Sub EndConnect (result As IAsyncResult)

매개 변수

asyncResultresult
IAsyncResult

이 비동기 작업에 대한 상태 정보 및 사용자 정의 데이터를 저장하는 IAsyncResult입니다.

예외

asyncResult이(가) null인 경우

BeginConnect(EndPoint, AsyncCallback, Object) 메서드를 호출했지만 asyncResult가 반환되지 않은 경우

EndConnect(IAsyncResult)가 비동기 연결을 위해 이미 호출된 경우

소켓에 액세스하는 동안 오류가 발생했습니다.

Socket이 닫혔습니다.

예제

다음 코드 예제에서는 비동기 연결 시도를 종료합니다. 소켓과의 비동기 통신을 보여 주는 전체 예제는 소켓 코드 예제를 참조하세요.

allDone->Set();
Socket^ s = safe_cast<Socket^>(ar->AsyncState);
s->EndConnect( ar );
StateObject^ so2 = gcnew StateObject;
so2->workSocket = s;
array<Byte>^ buff = Encoding::ASCII->GetBytes( "This is a test" );
s->BeginSend( buff, 0, buff->Length, SocketFlags::None,
   gcnew AsyncCallback( &Async_Send_Receive::Send_Callback ), so2 );
allDone.Set();
Socket s = (Socket) ar.AsyncState;
s.EndConnect(ar);
StateObject so2 = new StateObject();
so2.workSocket = s;
byte[] buff = Encoding.ASCII.GetBytes("This is a test");
s.BeginSend(buff, 0, buff.Length,0,
                      new AsyncCallback(Async_Send_Receive.Send_Callback), so2);
Public Shared Sub Connect_Callback(ar As IAsyncResult)
   

   allDone.Set()
   Dim s As Socket = CType(ar.AsyncState, Socket)
   s.EndConnect(ar)
   Dim so2 As New StateObject()
   so2.workSocket = s
   Dim buff As Byte() = Encoding.ASCII.GetBytes("This is a test")
   s.BeginSend(buff, 0, buff.Length, 0, New AsyncCallback(AddressOf Async_Send_Receive.Send_Callback), so2)
End Sub

설명

EndConnect 는 메서드에서 시작된 BeginConnect 비동기 원격 호스트 연결 요청을 완료하는 차단 메서드입니다.

호출 BeginConnect하기 전에 대리자를 구현하는 콜백 메서드를 AsyncCallback 만들어야 합니다. 이 콜백 메서드는 별도의 스레드에서 실행되며 반환 후 BeginConnect 시스템에서 호출됩니다. 콜백 메서드는 메서드에서 반환된 IAsyncResult BeginConnect 값을 매개 변수로 수락해야 합니다.

콜백 메서드 내에서 매개 변수의 메서드를 IAsyncResult 호출 AsyncState 하여 연결 시도가 이루어지고 있는 메서드를 가져옵니다Socket. 가져온 후 메서드를 Socket호출 EndConnect 하여 연결 시도를 성공적으로 완료할 수 있습니다.

참고

수신되는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명은 Windows Sockets 버전 2 API 오류 코드 설명서를 참조하세요.

참고

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

적용 대상

추가 정보