1秃症、阻塞 I/O 只能阻塞一個(gè) I/O 操作候址,而 I/O 復(fù)用模型能夠阻塞多個(gè) I/O 操作吕粹,所以才叫做多路復(fù)用
2、采用epoll模型時(shí)創(chuàng)建了一個(gè)共享的內(nèi)存空間岗仑,操作系統(tǒng)采用事件通知的方式匹耕,使一個(gè)進(jìn)程能同時(shí)等待多個(gè)文件描述符
3、這樣就可以同時(shí)監(jiān)聽多個(gè)網(wǎng)絡(luò)連接 IO荠雕, 相對于多進(jìn)程稳其、多線程切換的開銷問題,IO 多路復(fù)用可以極大的提升系統(tǒng)效率炸卑。
為什么客戶端先調(diào)close()既鞠,而服務(wù)器不能先調(diào)?
1盖文、因?yàn)橄日{(diào)close()的一方最終要等2分鐘之后才能釋放資源嘱蛋,這段期間是不允許用bind的方式重新綁定端口的,就會出現(xiàn)端口被占用的情況
2椅寺、而客戶端的端口是操作系統(tǒng)隨機(jī)分配的浑槽,被占用之后會再分配一個(gè)
3、若服務(wù)端先調(diào)返帕,則需要設(shè)定套接字選項(xiàng)桐玻,配置重復(fù)利用端口資源才可以