다음을 통해 공유


Socket.BeginSendFile 메서드

정의

파일을 연결된 Socket 개체에 비동기적으로 보냅니다.

오버로드

BeginSendFile(String, AsyncCallback, Object)

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

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

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

BeginSendFile(String, AsyncCallback, Object)

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

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

public:
 IAsyncResult ^ BeginSendFile(System::String ^ fileName, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSendFile (string fileName, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile (string? fileName, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile (string fileName, AsyncCallback callback, object state);
member this.BeginSendFile : string * AsyncCallback * obj -> IAsyncResult
Public Function BeginSendFile (fileName As String, callback As AsyncCallback, state As Object) As IAsyncResult

매개 변수

fileName
String

보낼 파일의 경로 및 이름이 들어 있는 문자열입니다. 이 매개 변수는 null일 수 있습니다.

callback
AsyncCallback

AsyncCallback 대리자입니다.

state
Object

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

반환

비동기 보내기를 나타내는 IAsyncResult 개체입니다.

예외

Socket 개체가 닫힌 경우

소켓이 원격 호스트에 연결되지 않은 경우

fileName 파일을 찾을 수 없는 경우

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

설명

중요

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

이 오버로드는 소켓을 통해 파일을 fileName 보냅니다. 가 로컬 디렉터리에 있는 경우 fileName 파일 이름만으로 식별될 수 있습니다. 그렇지 않으면 파일의 전체 경로와 이름을 지정해야 합니다. 와일드카드(".. \\myfile.txt") 및 UNC 공유 이름("\\\\shared directory\\myfile.txt")이 지원됩니다. 파일을 찾을 수 없으면 예외 FileNotFoundException 가 throw됩니다.

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

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

연결 지향 프로토콜을 위한 것이지만, BeginSendFile 또는 BeginConnect 메서드를 먼저 호출 Connect 하여 기본 원격 호스트를 설정하는 경우 연결 없는 프로토콜에서도 작동합니다. 연결이 없는 프로토콜을 사용하면 파일 크기가 기본 서비스 공급자의 최대 패킷 크기를 초과하지 않는지 확인해야 합니다. 이 경우 데이터그램이 전송 BeginSendFile 되지 않고 예외가 SocketException throw됩니다.

참고

예외가 SocketException 표시되면 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다.

참고

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

참고

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

적용 대상

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

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

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

public:
 IAsyncResult ^ BeginSendFile(System::String ^ fileName, cli::array <System::Byte> ^ preBuffer, cli::array <System::Byte> ^ postBuffer, System::Net::Sockets::TransmitFileOptions flags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSendFile (string? fileName, byte[]? preBuffer, byte[]? postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile (string fileName, byte[] preBuffer, byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback callback, object state);
member this.BeginSendFile : string * byte[] * byte[] * System.Net.Sockets.TransmitFileOptions * AsyncCallback * obj -> IAsyncResult
Public Function BeginSendFile (fileName As String, preBuffer As Byte(), postBuffer As Byte(), flags As TransmitFileOptions, callback As AsyncCallback, state As Object) As IAsyncResult

매개 변수

fileName
String

보낼 파일의 경로 및 이름이 들어 있는 문자열입니다. 이 매개 변수는 null일 수 있습니다.

preBuffer
Byte[]

파일을 보내기 전에 보낼 데이터입니다. 이 매개 변수는 null일 수 있습니다.

postBuffer
Byte[]

파일을 보낸 후 보낼 데이터입니다. 이 매개 변수는 null일 수 있습니다.

flags
TransmitFileOptions

열거형 값의 비트 조합입니다.

callback
AsyncCallback

이 작업이 완료되면 호출될 AsyncCallback 대리자입니다. 이 매개 변수는 null일 수 있습니다.

state
Object

이 요청에 대한 상태 정보가 들어 있는 사용자 정의 개체입니다. 이 매개 변수는 null일 수 있습니다.

반환

비동기 작업을 나타내는 IAsyncResult 개체입니다.

예외

Socket 개체가 닫힌 경우

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

운영 체제가 Windows NT 이상이 아닌 경우

또는

소켓이 원격 호스트에 연결되지 않은 경우

fileName 파일을 찾을 수 없는 경우

설명

중요

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

이 오버로드에는 보낼 파일의 이름과 값의 TransmitFileOptions 비트 조합이 필요합니다. 매개 변수에는 preBuffer 파일 앞에 하려는 모든 데이터가 포함됩니다. postBuffer 에는 파일을 따르려는 데이터가 포함되어 있습니다. 가 로컬 디렉터리에 있는 경우 fileName 파일 이름만으로 식별될 수 있습니다. 그렇지 않으면 파일의 전체 경로와 이름을 지정해야 합니다. 와일드카드(".. \\myfile.txt") 및 UNC 공유 이름("\\\\shared directory\\myfile.txt")이 지원됩니다. 파일을 찾을 수 없으면 예외 FileNotFoundException 가 throw됩니다.

매개 변수는 flags 파일 전송에 대한 추가 정보를 제공합니다. 이 매개 변수를 사용하는 방법에 대한 자세한 내용은 를 참조하세요 TransmitFileOptions.

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

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

연결 지향 프로토콜을 위한 것이지만, BeginSendFile 또는 BeginConnect 메서드를 먼저 호출 Connect 하여 기본 원격 호스트를 설정하는 경우 연결 없는 프로토콜에서도 작동합니다. 연결이 없는 프로토콜을 사용하면 파일 크기가 기본 서비스 공급자의 최대 패킷 크기를 초과하지 않는지 확인해야 합니다. 이 경우 데이터그램이 전송 BeginSendFile 되지 않고 예외가 SocketException throw됩니다.

참고

예외가 SocketException 표시되면 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다.

참고

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

참고

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

적용 대상