當前位置:編程學習大全網 - 網站源碼 - Socket類BeginConnect方法和ConnectAsync方法的區別

Socket類BeginConnect方法和ConnectAsync方法的區別

這個是C#的東西。

函數原型如下:

public IAsyncResult BeginConnect(

EndPoint remoteEP,

AsyncCallback callback,

Object state

)

public bool ConnectAsync(

SocketAsyncEventArgs e

)

他們都開始壹個對遠程主機連接的異步請求。BeginConnect可以有壹個 AsyncCallback 委托的回調方法來處理後續的事情,但是回調方法應調用 EndConnect 方法。 當應用程序調用 BeginConnect 時,系統將使用單獨的線程執行指定的回調方法,並在 EndConnect 上壹直阻止到 Socket成功連接或引發異常為止。 另外 如果想要在調用 BeginConnect 方法後使原始線程阻止,請使用 WaitOne。 當需要原始線程繼續執行時,請在回調方法中調用ManualResetEvent 的 Set 方法。

對於ConnectAsync來說的話,若要在完成時得到通知,必須創建壹個實現EventHandler<SocketAsyncEventArgs> 委托的回調方法,並將該回調連接到 SocketAsyncEventArgs.Completed事件。

所以總體上來說這兩個方法實現的東西差不多,就看用戶的習慣了。MSDN上面有壹個用BeginConnect的例子可以參考。

  • 上一篇:雲黑碼怎麽上黑
  • 下一篇:如何開發基於區塊鏈的瀏覽器?
  • copyright 2024編程學習大全網