共用方式為


CAsyncSocket::Accept

呼叫此成員函式會接受的通訊端連接。

virtual BOOL Accept(
   CAsyncSocket& rConnectedSocket,
   SOCKADDR* lpSockAddr = NULL,
   int* lpSockAddrLen = NULL 
);

參數

  • rConnectedSocket
    識別為連接可用的新通訊端的參考。

  • lpSockAddr
    out 接收連接的通訊端位址之 SOCKADDR 結構的指標,以了解在網路上。 當建立通訊端通訊協定家族,取決於 lpSockAddr 引數的正確格式建立。 如果 lpSockAddr 和 (或) lpSockAddrLen 與 NULL相等,就如需接受的通訊端的遠端位址的資訊不會傳回。

  • lpSockAddrLen
    為位址的長度的指標會 lpSockAddr 的 (以位元組為單位)。 lpSockAddrLen 是值結果參數:它應該包含初始空間所指向的 lpSockAddr;在傳回時會包含實際長度 (以位元組為單位傳回的) 的位址。

傳回值

如果不是零,則函式成功,否則 0 和特定錯誤碼來呼叫 GetLastError擷取。 下列錯誤套用至這個成員函式:

  • WSANOTINITIALISED A 成功 AfxSocketInit 必須在使用此 API 之前發生。

  • WSAENETDOWN 視窗通訊端實作偵測網路子系統失敗。

  • WSAEFAULTlpSockAddrLen 引數太少 (小於 SOCKADDR 結構的大小)。

  • 封鎖 Windows Sockets 呼叫的WSAEINPROGRESS A 正在進行中。

  • WSAEINVAL   Listen 未叫用之前接受。

  • WSAEMFILE 佇列的輸入為 null,接受並沒有可用的描述項。

  • WSAENOBUFS 沒有緩衝區空間可供使用。

  • WSAENOTSOCK 描述元不是通訊端。

  • WSAEOPNOTSUPP 參考不是支援的通訊端連接導向服務的型別。

  • WSAEWOULDBLOCK 通訊端標記為未封鎖,並且連接不被接受。

備註

這個常式會擷取在暫止連接佇列中的第一個連接,建立具有屬性的新通訊端和這個通訊端相同,並將其附加至 rConnectedSocket。 如果暫止連接未出現在佇列中, 接受 傳回零,並 GetLastError 傳回錯誤。 接受的通訊端 (rConnectedSocket) 不能用來接受多個連接。 原始的通訊端會保持開啟和接聽。

引數 lpSockAddr 是連接的通訊端位址填入之結果的參數,如用於通訊已知分層。 接受 搭配以連接的通訊端類型 (例如 SOCK_STREAM

需求

Header: afxsock.h

請參閱

參考

CAsyncSocket 類別

階層架構圖

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::Create

WSAAsyncSelect