接著,在完成bind函數之后,服務端接下來就可以用listen函數監(jiān)聽了,用于監(jiān)聽是否有客戶端連接它,以便存儲多個用戶的連接建立請求,listen函數具體如下:
函數功能:
讓socket進入被動監(jiān)聽狀態(tài)。什么是被動監(jiān)聽呢,是指當沒有客戶端請求時,socket處于“沉睡”中,只有當接收到客戶端請求時,socket才會被“叫醒”來響應請求。
頭文件:
#include <winsock2.h>
函數原型:
int listen(int sockfd, intqueue_length);
返回值類型:
整型
返回值:
成功返回0,失敗返回-1
參數說明:
第一個參數為第一步sockfd創(chuàng)建socket時的返回值,套接字的描述符。
第二個參數queue_length用于指定接收隊列的長度,也就是在Server程序調用accept函數之前最大允許進入的連接請求數,多余的連接請求將被拒絕,典型取值為5。
listen(sockfd,5);//監(jiān)聽sockfd為創(chuàng)建套接字時的返回值。
C語言網提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程