CAsyncSocket::Listen
呼叫此成員函式接聽連入連線要求。
BOOL Listen(
int nConnectionBacklog = 5
);
參數
- nConnectionBacklog
暫止連接佇列成長所至的最大長度。有效範圍是從 1 到 5。
傳回值
如果不是零,則函式成功,否則 0 和特定錯誤碼來呼叫 GetLastError擷取。下列錯誤套用至這個成員函式:
WSANOTINITIALISED A 成功 AfxSocketInit 必須在使用此 API 之前發生。
WSAENETDOWN 視窗通訊端實作偵測網路子系統失敗。
WSAEADDRINUSE 嘗試在使用中的位址會接聽。
封鎖視窗通訊端作業的WSAEINPROGRESS A 正在進行中。
WSAEINVAL 通訊端未繫結的 繫結 也尚未連接。
WSAEISCONN 通訊端已連接。
WSAEMFILE 沒有其他的檔案描述項無法使用。
WSAENOBUFS 沒有緩衝區空間可供使用。
WSAENOTSOCK 描述元不是通訊端。
WSAEOPNOTSUPP 參考的通訊端不支援 Listen 運算的型別。
備註
若要接受連接,通訊端會先以 建立,連入連線的待處理項目中指定的 Listen,連接就會接受具有 接受。Listen 只適用於支援連結,也就是說,這些型別 SOCK_STREAM的通訊端。這個通訊端置入「連入連線已認可並等候佇列接受由處理序的被動模式。
伺服器 (或接受連接) 可以一次只能有一個以上的連接要求的任何應用程式通常會使用這個函式:如果連接要求送達完整佇列,用戶端會收到與 WSAECONNREFUSED的指示的錯誤。
Listen 嘗試繼續條理地運作,當沒有可用的通訊埠時 (描述項)。它只會接受連接,直到清空佇列。如果連接埠變成可用,則為 Listen 或 接受 的話則稍後呼叫會重新填入接聽連入連線的佇列和目前或最近一次「待處理項目,並繼續。
需求
Header: afxsock.h