Socket.BeginAccept 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開始非同步操作以接受來電連線嘗試。
多載
| 名稱 | Description |
|---|---|
| BeginAccept(AsyncCallback, Object) |
開始非同步操作以接受來電連線嘗試。 |
| BeginAccept(Int32, AsyncCallback, Object) |
開始非同步操作以接受輸入連線嘗試,並接收用戶端應用程式傳送的第一段資料區塊。 |
| BeginAccept(Socket, Int32, AsyncCallback, Object) |
開始非同步操作以接受來自指定套接字的連線嘗試,並接收用戶端應用程式傳送的第一段資料區塊。 |
BeginAccept(AsyncCallback, Object)
- 來源:
- Socket.cs
- 來源:
- Socket.cs
- 來源:
- 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)。
-或-
被接受的套筒是綁定的。
僅限 .NET Framework 使用:嘗試存取 socket 時發生錯誤。
備註
Important
這是一個相容性 API。 我們不建議使用 APM (Begin* 和 End*)方法來進行新開發。 相反地,使用 Task基於 的等價函數。
連線導向協定可使用此 BeginAccept 方法開始接受輸入連線嘗試。 在呼叫該 BeginAccept 方法之前,你必須先呼叫該 Listen 方法來監聽並排隊接收來的連線請求。
你可以傳遞一個回 AsyncCallback 調,讓 to BeginAccept 實作,以收到 accept 操作完成的通知。 請注意,若底層網路堆疊同步完成操作,回調可能會在呼叫 BeginAccept的過程中以內聯方式執行。 此時, CompletedSynchronously 返回 IAsyncResult 的屬性會被設定為 , true 表示該方法是同步完成的。 利用 AsyncState 的 IAsyncResult 屬性取得傳遞給 BeginAccept 方法的狀態物件。
BeginAccept操作必須透過呼叫該EndAccept方法來完成。 通常,該方法由所提供的 AsyncCallback 代理執行。 EndAccept 會在操作完成前阻擋呼叫執行緒。
若要取消對該 BeginAccept 方法的待處理呼叫,請關閉 Socket。 當 Close 方法在非同步操作進行中被呼叫時,會呼叫該 BeginAccept 方法所提供的回調。 後續呼叫該 EndAccept 方法會拋出 ObjectDisposedException (在 .NET 7 之前)或 SocketException (在 .NET 7+ 之前)以表示該操作已被取消。
Note
你可以利用 RemoteEndPoint returnd Socket 的屬性來識別遠端主機的網路位址和埠號。
Note
如果你收到 SocketException,請使用該 SocketException.ErrorCode 屬性取得特定的錯誤代碼。
Note
當您在應用程式中啟用網路追蹤時,此成員會輸出追蹤資訊。 欲了解更多資訊,請參閱.NET框架中的網路追蹤。
Note
執行上下文(安全上下文、模擬使用者與呼叫上下文)會為非同步 Socket 方法快取。 在首次使用特定上下文(特定非同步 Socket 方法、特定 Socket 實例及特定回調)後,該上下文的後續使用將有效能提升。
另請參閱
適用於
BeginAccept(Int32, AsyncCallback, Object)
- 來源:
- Socket.cs
- 來源:
- Socket.cs
- 來源:
- 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 使用:嘗試存取 socket 時發生錯誤。
備註
Important
這是一個相容性 API。 我們不建議使用 APM (Begin* 和 End*)方法來進行新開發。 相反地,使用 Task基於 的等價函數。
連線導向協定可使用此 BeginAccept 方法開始接受輸入連線嘗試。 在呼叫該 BeginAccept 方法之前,你必須先呼叫該 Listen 方法來監聽並排隊接收來的連線請求。
你可以傳遞一個回 AsyncCallback 調,讓 to BeginAccept 實作,以收到 accept 操作完成的通知。 請注意,若底層網路堆疊同步完成操作,回調可能會在呼叫 BeginAccept的過程中以內聯方式執行。 此時, CompletedSynchronously 返回 IAsyncResult 的屬性會被設定為 , true 表示該方法是同步完成的。 利用 AsyncState 的 IAsyncResult 屬性取得傳遞給 BeginAccept 方法的狀態物件。
BeginAccept操作必須透過呼叫該EndAccept方法來完成。 通常,該方法由所提供的 AsyncCallback 代理執行。 EndAccept 會在操作完成前阻擋呼叫執行緒。
若要取消對該 BeginAccept 方法的待處理呼叫,請關閉 Socket。 當 Close 方法在非同步操作進行中被呼叫時,會呼叫該 BeginAccept 方法所提供的回調。 後續呼叫該 EndAccept 方法會拋出 ObjectDisposedException (在 .NET 7 之前)或 SocketException (在 .NET 7+ 之前)以表示該操作已被取消。
Note
你可以利用 RemoteEndPoint returnd Socket 的屬性來識別遠端主機的網路位址和埠號。
Note
如果你收到 SocketException,請使用該 SocketException.ErrorCode 屬性取得特定的錯誤代碼。
Note
當您在應用程式中啟用網路追蹤時,此成員會輸出追蹤資訊。 欲了解更多資訊,請參閱.NET框架中的網路追蹤。
Note
執行上下文(安全上下文、模擬使用者與呼叫上下文)會為非同步 Socket 方法快取。 在首次使用特定上下文(特定非同步 Socket 方法、特定 Socket 實例及特定回調)後,該上下文的後續使用將有效能提升。
另請參閱
適用於
BeginAccept(Socket, Int32, AsyncCallback, Object)
- 來源:
- Socket.cs
- 來源:
- Socket.cs
- 來源:
- 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
參數
- receiveSize
- Int32
最大可接收的位元組數。
- callback
- AsyncCallback
代表 AsyncCallback 。
- state
- Object
一個包含此請求狀態資訊的物件。
傳回
一個 IAsyncResult 參考非同步 Socket 物件建立的物件。
例外狀況
該 Socket 物體已被關閉。
接受插座沒有監聽連線。 您必須先打電話 Bind(EndPoint) ,然後 Listen(Int32) 再打電話 BeginAccept(AsyncCallback, Object)。
-或-
被接受的套筒是綁定的。
receiveSize 小於0。
僅限 .NET Framework 使用:嘗試存取 socket 時發生錯誤。
備註
Important
這是一個相容性 API。 我們不建議使用 APM (Begin* 和 End*)方法來進行新開發。 相反地,使用 Task基於 的等價函數。
連線導向協定可使用此 BeginAccept 方法開始接受輸入連線嘗試。 所產生的接受操作以返回 IAsyncResult 的 表示,儘管它可能同步完成。 在呼叫該 BeginAccept 方法之前,你必須先呼叫該 Listen 方法來監聽並排隊接收來的連線請求。
你可以傳遞一個回 AsyncCallback 調,讓 to BeginAccept 實作,以收到 accept 操作完成的通知。 請注意,若底層網路堆疊同步完成操作,回調可能會在呼叫 BeginAccept的過程中以內聯方式執行。 此時, CompletedSynchronously 返回 IAsyncResult 的屬性會被設定為 , true 表示該方法是同步完成的。 利用 AsyncState 的 IAsyncResult 屬性取得傳遞給 BeginAccept 方法的狀態物件。
BeginAccept操作必須透過呼叫該EndAccept方法來完成。 通常,該方法由所提供的 AsyncCallback 代理執行。 EndAccept 會在操作完成前阻擋呼叫執行緒。
若要取消對該 BeginAccept 方法的待處理呼叫,請關閉 Socket。 當 Close 方法在非同步操作進行中被呼叫時,會呼叫該 BeginAccept 方法所提供的回調。 後續呼叫該 EndAccept 方法會拋出 ObjectDisposedException (在 .NET 7 之前)或 SocketException (在 .NET 7+ 之前)以表示該操作已被取消。
Note
你可以利用 RemoteEndPoint returnd Socket 的屬性來識別遠端主機的網路位址和埠號。
Note
如果你收到 SocketException,請使用該 SocketException.ErrorCode 屬性取得特定的錯誤代碼。
Note
當您在應用程式中啟用網路追蹤時,此成員會輸出追蹤資訊。 欲了解更多資訊,請參閱.NET框架中的網路追蹤。
Note
執行上下文(安全上下文、模擬使用者與呼叫上下文)會為非同步 Socket 方法快取。 在首次使用特定上下文(特定非同步 Socket 方法、特定 Socket 實例及特定回調)後,該上下文的後續使用將有效能提升。