Socket.BeginAccept 方法

定義

開始非同步作業以接受連入的連接嘗試。

多載

BeginAccept(AsyncCallback, Object)

開始非同步作業以接受連入的連接嘗試。

BeginAccept(Int32, AsyncCallback, Object)

開始非同步作業以接收連入連線嘗試,並接收用戶端應用程式傳送的第一個資料區塊。

BeginAccept(Socket, Int32, AsyncCallback, Object)

開始非同步作業以接收指定通訊端的連入連線嘗試,並接收用戶端應用程式傳送的第一個資料區塊。

BeginAccept(AsyncCallback, Object)

來源:
Socket.cs
來源:
Socket.cs
來源:
Socket.cs

開始非同步作業以接受連入的連接嘗試。

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

物件,包含這個要求的狀態資訊。

傳回

參考非同步 IAsyncResult 建立作業的 Socket

例外狀況

Socket物件已關閉。

接受的通訊端並未接聽連線。 您必須在呼叫 Bind(EndPoint) 之前呼叫 Listen(Int32)BeginAccept(AsyncCallback, Object)

-或-

接受的通訊端已繫結。

receiveSize 小於 0。

.NET Framework和 .NET 5 和更早版本:嘗試存取通訊端時發生錯誤。

備註

重要

這是相容性 API。 不建議使用 APM (Begin*End*) 方法來進行新的開發。 請改用型對 Task 等專案。

連線導向通訊協定可以使用 BeginAccept 方法來開始接受連入連線嘗試。 呼叫 BeginAccept 方法之前,您必須呼叫 Listen 方法來接聽和排入連入連線要求。

您可以傳遞實作 AsyncCallbackBeginAccept 的回呼,以取得完成接受作業的通知。 請注意,如果基礎網路堆疊以同步方式完成作業,則回呼可能會在呼叫 BeginAccept 期間內嵌執行。 在此情況下, CompletedSynchronously 傳回 IAsyncResult 的 屬性會設定為 true ,以指出方法已同步完成。 AsyncState使用 的 IAsyncResult 屬性,取得傳遞至 BeginAccept 方法的狀態物件。

呼叫 BeginAccept 方法必須完成 EndAccept 作業。 一般而言,提供的 AsyncCallback 委派會叫用 方法。 EndAccept 將會封鎖呼叫執行緒,直到作業完成為止。

若要取消對 方法的 BeginAccept 擱置呼叫,請關閉 SocketClose在非同步作業進行時呼叫 方法時,會呼叫提供給 方法的 BeginAccept 回呼。 方法的後續呼叫 EndAccept 會在 .NET 7) 或 SocketException .NET 7+) 上的 (之前擲回 ObjectDisposedException (,以指出作業已取消。

注意

您可以使用 RemoteEndPointSocket 回的 屬性來識別遠端主機的網路位址和埠號碼。

注意

如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。

注意

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱.NET Framework 中的網路追蹤

注意

系統會快 Socket 取非同步方法 (安全性內容、模擬使用者和呼叫內容) 的執行內容。 在第一次使用特定內容 (特定非同步 Socket 方法、特定 Socket 實例和特定回呼) 之後,該內容的後續使用將會看到效能改善。

另請參閱

適用於

BeginAccept(Int32, AsyncCallback, Object)

來源:
Socket.cs
來源:
Socket.cs
來源:
Socket.cs

開始非同步作業以接收連入連線嘗試,並接收用戶端應用程式傳送的第一個資料區塊。

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

物件,包含這個要求的狀態資訊。

傳回

參考非同步 IAsyncResult 建立作業的 Socket

例外狀況

Socket物件已關閉。

接受的通訊端並未接聽連線。 您必須在呼叫 Bind(EndPoint) 之前呼叫 Listen(Int32)BeginAccept(AsyncCallback, Object)

-或-

接受的通訊端已繫結。

receiveSize 小於 0。

.NET Framework和 .NET 5 和更早版本:嘗試存取通訊端時發生錯誤。

備註

重要

這是相容性 API。 不建議使用 APM (Begin*End*) 方法來進行新的開發。 請改用型對 Task 等專案。

連線導向通訊協定可以使用 BeginAccept 方法來開始接受連入連線嘗試。 呼叫 BeginAccept 方法之前,您必須呼叫 Listen 方法來接聽和排入連入連線要求。

您可以傳遞實作 AsyncCallbackBeginAccept 的回呼,以取得完成接受作業的通知。 請注意,如果基礎網路堆疊以同步方式完成作業,則回呼可能會在呼叫 BeginAccept 期間內嵌執行。 在此情況下, CompletedSynchronously 傳回 IAsyncResult 的 屬性會設定為 true ,以指出方法已同步完成。 AsyncState使用 的 IAsyncResult 屬性,取得傳遞至 BeginAccept 方法的狀態物件。

呼叫 BeginAccept 方法必須完成 EndAccept 作業。 一般而言,提供的 AsyncCallback 委派會叫用 方法。 EndAccept 將會封鎖呼叫執行緒,直到作業完成為止。

若要取消對 方法的 BeginAccept 擱置呼叫,請關閉 SocketClose在非同步作業進行時呼叫 方法時,會呼叫提供給 方法的 BeginAccept 回呼。 方法的後續呼叫 EndAccept 會在 .NET 7) 或 SocketException .NET 7+) 上的 (之前擲回 ObjectDisposedException (,以指出作業已取消。

注意

您可以使用 RemoteEndPointSocket 回的 屬性來識別遠端主機的網路位址和埠號碼。

注意

如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。

注意

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱.NET Framework 中的網路追蹤

注意

系統會快 Socket 取非同步方法 (安全性內容、模擬使用者和呼叫內容) 的執行內容。 在第一次使用特定內容 (特定非同步 Socket 方法、特定 Socket 實例和特定回呼) 之後,該內容的後續使用將會看到效能改善。

另請參閱

適用於

BeginAccept(Socket, Int32, AsyncCallback, Object)

來源:
Socket.cs
來源:
Socket.cs
來源:
Socket.cs

開始非同步作業以接收指定通訊端的連入連線嘗試,並接收用戶端應用程式傳送的第一個資料區塊。

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

物件,包含這個要求的狀態資訊。

傳回

IAsyncResult 物件,參考非同步 Socket 物件建立。

例外狀況

Socket物件已關閉。

接受的通訊端並未接聽連線。 您必須在呼叫 Bind(EndPoint) 之前呼叫 Listen(Int32)BeginAccept(AsyncCallback, Object)

-或-

接受的通訊端已繫結。

receiveSize 小於 0。

.NET Framework和 .NET 5 和更早版本:嘗試存取通訊端時發生錯誤。

備註

重要

這是相容性 API。 不建議使用 APM (Begin*End*) 方法來進行新的開發。 請改用 Task 以 為基礎的對等專案。

連線導向通訊協定可以使用 BeginAccept 方法來開始接受連入連線嘗試。 產生的接受作業是由傳 IAsyncResult 回的 表示,即使它可能以同步方式完成也一樣。 在呼叫 BeginAccept 方法之前,您必須呼叫 Listen 方法來接聽和排入連入連線要求。

您可以傳遞實作 AsyncCallback 的回呼給 BeginAccept ,以取得完成接受作業的通知。 請注意,如果基礎網路堆疊以同步方式完成作業,則回呼可能會在呼叫 BeginAccept 期間內嵌執行。 在此情況下, CompletedSynchronously 傳回 IAsyncResult 之 上的 屬性會設定為 true ,表示方法會以同步方式完成。 AsyncState使用 的 IAsyncResult 屬性,取得傳遞至 BeginAccept 方法的狀態物件。

BeginAccept作業必須藉由呼叫 EndAccept 方法來完成。 一般而言,方法是由提供的 AsyncCallback 委派叫用。 EndAccept 將會封鎖呼叫執行緒,直到作業完成為止。

若要取消對 方法的 BeginAccept 暫止呼叫,請關閉 SocketClose在非同步作業進行時呼叫 方法時,會呼叫提供給 方法的 BeginAccept 回呼。 後續呼叫 EndAccept 方法會在 .NET 7) 或 SocketException .NET 7+) 上的 (之前擲回 ObjectDisposedException (,以指出作業已取消。

注意

您可以使用 RemoteEndPointSocket 回的 屬性來識別遠端主機的網路位址和埠號碼。

注意

如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。

注意

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱.NET Framework 中的網路追蹤

注意

系統會針對非同步 Socket 方法快取執行內容 (安全性內容、模擬的使用者和呼叫內容) 。 在第一次使用特定內容 (特定非同步 Socket 方法、特定 Socket 實例和特定回呼) 之後,後續使用該內容將會看到效能改善。

另請參閱

適用於