一、服務器處理多客戶端(并發服務器)
(一)listen:監聽客戶端的連接請求,放入請求隊列
(二)accpet:請求隊列中提取已連接的請求,返回連接好的fd(循環accpet即可)
二、并發服務器
(一)setsocketopt函數
? ? ? ? 注意:int reuse = 1;? ? ? ? //設置SO_RESUEADDR選項,允許地址重用
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //必須在調用binf函數之前設置
(二)多進程
(三)多線程
三、多路IO復用(并發服務器)
(一)多路IO
(二)復用:一個進程或者線程處理多個任務
(三)IO的處理模型
? ? ? ? 1.阻塞IO模型:簡單、低效
? ? ? ? 2.設置非阻塞:輪詢+CPU負擔重
? ? ? ? 3.信號驅動IO:處理數量有效
? ? ? ? 4.select函數(IO多路復用、監控多路IO)