我有一個簡單的自定義HTTP服務器服務客戶端。爲什麼SNDBUF太低會破壞HTTP?
將SNDBUF設置爲512000一切正常。但是,將其設置爲低或將其保留爲默認值(無論如何)會導致Chrome和Firefox無法接收所有響應數據 - Firefox會在大約150000 - 250000字節後截斷它(即使內容保持不變,偏移量也會每次更改相同),並且Chrome提供了一個沒有詳細信息的錯誤。
問題中的特定響應大約爲300000字節,並且全部發送到一個塊中。
像Rex Swain's HTTP Viewer這樣的工具,curl和wget報告沒有這樣的問題,並顯示所有的數據。
爲什麼設置SNDBUF會影響Chrome和Firefox接收數據的能力?我理解SNDBUF是如何影響性能的,但我不明白如何將它設置得太低會破壞流。
自定義HTTP服務器...審計所有'write(2)'/'writev( 2)'/'發送(2)'調用來查看它們是否正確處理返回值。這似乎是最可能的問題來源。 –