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