내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

FtpWebRequest.EndGetRequestStream 메서드

BeginGetRequestStream 으로 시작된 보류 중인 비동기 작업을 종료합니다.

네임스페이스:  System.Net
어셈블리:  System(System.dll)

public override Stream EndGetRequestStream(
	IAsyncResult asyncResult
)

매개 변수

asyncResult
형식: System.IAsyncResult
작업이 시작될 때 반환된 IAsyncResult 개체입니다.

반환 값

형식: System.IO.Stream
이 인스턴스와 연결된 쓰기 가능한 Stream 인스턴스입니다.

예외조건
ArgumentNullException

asyncResultnull입니다.

ArgumentException

BeginGetRequestStream 을 호출하여 asyncResult를 가져오지 못한 경우

InvalidOperationException

asyncResult로 식별된 작업에 대해 이 메서드가 이미 호출된 경우

작업이 완료되지 않은 경우 EndGetRequestStream 메서드는 작업이 완료될 때까지 차단됩니다. 작업이 완료되었는지 여부를 확인하려면 EndGetRequestStream을 호출하기 전에 IsCompleted 속성을 확인합니다.

EndGetRequestStream 은 "예외"에 설명된 예외 외에 스트림을 쓰기 위해 여는 동안 throw된 예외도 다시 throw합니다.

참고참고

응용 프로그램에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 네트워크 추적를 참조하십시오.

다음 코드 예제에서는 요청의 스트림을 가져오기 위한 비동기 작업의 종료 방법을 보여 줍니다. 이 코드 예제는 FtpWebRequest 클래스 개요에 대해 제공되는 보다 큰 예제의 일부입니다.


private static void EndGetStreamCallback(IAsyncResult ar)
{
    FtpState state = (FtpState) ar.AsyncState;

    Stream requestStream = null;
    // End the asynchronous call to get the request stream.
    try
    {
        requestStream = state.Request.EndGetRequestStream(ar);
        // Copy the file contents to the request stream.
        const int bufferLength = 2048;
        byte[] buffer = new byte[bufferLength];
        int count = 0;
        int readBytes = 0;
        FileStream stream = File.OpenRead(state.FileName);
        do
        {
            readBytes = stream.Read(buffer, 0, bufferLength);
            requestStream.Write(buffer, 0, readBytes);
            count += readBytes;
        }
        while (readBytes != 0);
        Console.WriteLine ("Writing {0} bytes to the stream.", count);
        // IMPORTANT: Close the request stream before sending the request.
        requestStream.Close();
        // Asynchronously get the response to the upload request.
        state.Request.BeginGetResponse(
            new AsyncCallback (EndGetResponseCallback), 
            state
        );
    } 
    // Return exceptions to the main application thread.
    catch (Exception e)
    {
        Console.WriteLine("Could not get the request stream.");
        state.OperationException = e;
        state.OperationComplete.Set();
        return;
    }

}


.NET Framework

4.5, 4, 3.5, 3.0, 2.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework 에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 다음을 참조하십시오. .NET Framework 시스템 요구 사항.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft