0.套接字是什麼?
1.為什麼我們在服務器建立一個套接字,不同的客戶端發送消息接受消息,仍舊是從這個套接字上面接受呢?
2.這個套接字可以接受多少的連接呢?比如同時滿足100個客戶端同時發送消息
3.listen()函數的第二個參數到底是什麼作用?如果我們同時有1000個連接,而listen的設定為5個監聽連接,會怎麼樣呢?
<小弟初學者,希望大家不要噴,懇切回答,多謝>
0.套接字是網絡編程的一個術語,是兩端之間交互數據的接口。
1.服務器先建立一個套接字用於監聽客戶端的連接,但是服務器在accept之後會為沒一個客戶端都建立一個套接字,
用於客戶端和服務器之間收發數據,而不是從監聽的套接字收數據。
2.監聽套接字接受的數量不受限制,但是linux系統會限制同時存在的套接字數量,默認是1024,但是可以通過修改配置設置這個值,
100個那是小case了
3.listen的第二個參數是連接請求隊列的最大長度,超過這個數值,服務器就會拒絕客戶端連接。
為5表示同時最多只能接受5 個連接,但是系統是一邊等待連接,一邊在處理已經連接上的socket,處理完的會從隊列清除,
所以1000個只要不是同時來連接就不會有問題。
望采納,希望能幫到你。