今天在使用完成端口做http server時, 使用appache ab進行壓力測試,當服務器收到客戶端的請求後,回覆響應後,直接關閉client的fd後,ab出現錯誤,錯誤提示如下:
遠程主機強迫關閉了一個現有的連接
當在服務端使用shutdown(nClientId, SD_SEND)後,居然沒事了
使用shutdown的作用是 禁止寫操作,同時等發送緩存的數據發送出去後,直接發送FIN,稱“優雅關閉”, "從容關閉"
而直接調用closeSocket時,不會發送緩存的數據給client, 然後發送FIN
ab出現 遠程主機強迫關閉了一個現有的連接 可能是收到一個RST錯誤,待驗證,而收到FIN時,應該是收到結束符了