Socket.BeginAccept メソッド

定義

受信接続の試行を受け入れる非同期操作を開始します。

オーバーロード

BeginAccept(AsyncCallback, Object)

受信接続の試行を受け入れる非同期操作を開始します。

BeginAccept(Int32, AsyncCallback, Object)

受信接続の試行を受け入れる非同期操作を開始し、クライアント アプリケーションによって送信されるデータの最初のブロックを受信します。

BeginAccept(Socket, Int32, AsyncCallback, Object)

指定したソケットから受信接続の試行を受け入れる非同期操作を開始し、クライアント アプリケーションによって送信されるデータの最初のブロックを受信します。

BeginAccept(AsyncCallback, Object)

受信接続の試行を受け入れる非同期操作を開始します。

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

パラメーター

callback
AsyncCallback

AsyncCallback デリゲート。

state
Object

この要求の状態情報を格納するオブジェクト。

戻り値

非同期の Socket 作成を参照する IAsyncResult

例外

Socket オブジェクトは閉じられています。

受け入れ元のソケットが、接続をリッスンしていません。 BeginAccept(AsyncCallback, Object) の前に Bind(EndPoint) および Listen(Int32) を呼び出す必要があります。

- または -

受け入れられたソケットがバインドされています。

receiveSize が 0 未満です。

.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。

注釈

重要

これは互換性 API です。 新しい開発に APM (Begin* および End*) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task同等のものを使用してください。

接続指向プロトコルでは、 メソッドを BeginAccept 使用して、着信接続の試行の受け入れを開始できます。 メソッドを呼び出す前に BeginAccept 、 メソッドを Listen 呼び出して受信接続要求をリッスンし、キューに入る必要があります。

受け入れ操作の完了に関する通知を受け取るために、 を実装AsyncCallbackBeginAcceptするコールバックを渡すことができます。 基になるネットワーク スタックが同期的に操作を完了した場合、 への BeginAccept呼び出し中にコールバックがインラインで実行される可能性があることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginAccept 使用します。

メソッドを BeginAccept 呼び出して操作を完了する EndAccept 必要があります。 通常、 メソッドは、指定 AsyncCallback されたデリゲートによって呼び出されます。 EndAccept は、操作が完了するまで呼び出し元のスレッドをブロックします。

メソッドの保留中の呼び出しを BeginAccept 取り消すには、 を Socket閉じます。 非同期操作の Close 進行中に メソッドが呼び出されると、 メソッドに BeginAccept 提供されるコールバックが呼び出されます。 メソッドのEndAccept後続の呼び出しでは、 (.NET 7 より前) または SocketException (.NET 7 以降では) がスロー ObjectDisposedException され、操作が取り消されたことを示します。

Note

返された Socket の プロパティをRemoteEndPoint使用して、リモート ホストのネットワーク アドレスとポート番号を識別できます。

Note

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

Note

実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定のインスタンス、および特定 Socket のコールバック) を最初に使用すると、そのコンテキストの後続の使用によってパフォーマンスが向上します。

こちらもご覧ください

適用対象

BeginAccept(Int32, AsyncCallback, Object)

受信接続の試行を受け入れる非同期操作を開始し、クライアント アプリケーションによって送信されるデータの最初のブロックを受信します。

public:
 IAsyncResult ^ BeginAccept(int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

receiveSize
Int32

送信元から受け入れるバイト数。

callback
AsyncCallback

AsyncCallback デリゲート。

state
Object

この要求の状態情報を格納するオブジェクト。

戻り値

非同期の Socket 作成を参照する IAsyncResult

例外

Socket オブジェクトは閉じられています。

受け入れ元のソケットが、接続をリッスンしていません。 BeginAccept(AsyncCallback, Object) の前に Bind(EndPoint) および Listen(Int32) を呼び出す必要があります。

- または -

受け入れられたソケットがバインドされています。

receiveSize が 0 未満です。

.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。

注釈

重要

これは互換性 API です。 新しい開発に APM (Begin* および End*) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task同等のものを使用してください。

接続指向プロトコルでは、 メソッドを BeginAccept 使用して、着信接続の試行の受け入れを開始できます。 メソッドを呼び出す前に BeginAccept 、 メソッドを Listen 呼び出して受信接続要求をリッスンし、キューに入る必要があります。

受け入れ操作の完了に関する通知を受け取るために、 を実装AsyncCallbackBeginAcceptするコールバックを渡すことができます。 基になるネットワーク スタックが同期的に操作を完了した場合、 への BeginAccept呼び出し中にコールバックがインラインで実行される可能性があることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginAccept 使用します。

メソッドを BeginAccept 呼び出して操作を完了する EndAccept 必要があります。 通常、 メソッドは、指定 AsyncCallback されたデリゲートによって呼び出されます。 EndAccept は、操作が完了するまで呼び出し元のスレッドをブロックします。

メソッドの保留中の呼び出しを BeginAccept 取り消すには、 を Socket閉じます。 非同期操作の Close 進行中に メソッドが呼び出されると、 メソッドに BeginAccept 提供されるコールバックが呼び出されます。 メソッドのEndAccept後続の呼び出しでは、 (.NET 7 より前) または SocketException (.NET 7 以降では) がスロー ObjectDisposedException され、操作が取り消されたことを示します。

Note

返された Socket の プロパティをRemoteEndPoint使用して、リモート ホストのネットワーク アドレスとポート番号を識別できます。

Note

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

Note

実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定のインスタンス、および特定 Socket のコールバック) を最初に使用すると、そのコンテキストの後続の使用によってパフォーマンスが向上します。

こちらもご覧ください

適用対象

BeginAccept(Socket, Int32, AsyncCallback, Object)

指定したソケットから受信接続の試行を受け入れる非同期操作を開始し、クライアント アプリケーションによって送信されるデータの最初のブロックを受信します。

public:
 IAsyncResult ^ BeginAccept(System::Net::Sockets::Socket ^ acceptSocket, int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket? acceptSocket, int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket acceptSocket, int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : System.Net.Sockets.Socket * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (acceptSocket As Socket, receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

acceptSocket
Socket

受け入れた Socket オブジェクト。 この値は null の場合もあります。

receiveSize
Int32

受信する最大バイト数。

callback
AsyncCallback

AsyncCallback デリゲート。

state
Object

この要求の状態情報を格納するオブジェクト。

戻り値

非同期の Socket オブジェクトの作成を参照する IAsyncResult オブジェクト。

例外

Socket オブジェクトは閉じられています。

受け入れ元のソケットが、接続をリッスンしていません。 BeginAccept(AsyncCallback, Object) の前に Bind(EndPoint) および Listen(Int32) を呼び出す必要があります。

- または -

受け入れられたソケットがバインドされています。

receiveSize が 0 未満です。

.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。

注釈

重要

これは互換性 API です。 新しい開発に APM (Begin* および End*) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task同等のものを使用してください。

接続指向プロトコルでは、 メソッドを BeginAccept 使用して、着信接続の試行の受け入れを開始できます。 結果として得られる受け入れ操作は、同期的に完了する可能性がある場合でも、返された IAsyncResult によって表されます。 メソッドを呼び出す前に BeginAccept 、 メソッドを Listen 呼び出して受信接続要求をリッスンし、キューに入る必要があります。

受け入れ操作の完了に関する通知を受け取るために、 を実装AsyncCallbackBeginAcceptするコールバックを渡すことができます。 基になるネットワーク スタックが同期的に操作を完了した場合、 への BeginAccept呼び出し中にコールバックがインラインで実行される可能性があることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginAccept 使用します。

メソッドを BeginAccept 呼び出して操作を完了する EndAccept 必要があります。 通常、 メソッドは、指定 AsyncCallback されたデリゲートによって呼び出されます。 EndAccept は、操作が完了するまで呼び出し元のスレッドをブロックします。

メソッドの保留中の呼び出しを BeginAccept 取り消すには、 を Socket閉じます。 非同期操作の Close 進行中に メソッドが呼び出されると、 メソッドに BeginAccept 提供されるコールバックが呼び出されます。 メソッドのEndAccept後続の呼び出しでは、 (.NET 7 より前) または SocketException (.NET 7 以降では) がスロー ObjectDisposedException され、操作が取り消されたことを示します。

Note

返された Socket の プロパティをRemoteEndPoint使用して、リモート ホストのネットワーク アドレスとポート番号を識別できます。

Note

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

Note

実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定のインスタンス、および特定 Socket のコールバック) を最初に使用すると、そのコンテキストの後続の使用によってパフォーマンスが向上します。

こちらもご覧ください

適用対象