勵志

勵志人生知識庫

網路錯誤104

網路錯誤104通常表示嘗試在已經關閉的連線上執行writesend操作。這種情況可能發生在以下幾種情況:

連結已經斷開:這是最根本的原因,即對端已經關閉了連線。

數據長度不一致:傳送端和接收端事先約定好的數據長度不一致,導致接收端被通知要收的數據長度小於傳送端實際要傳送的數據長度。

Nginx快取小,timeout太小:如果Nginx的buffer太小,timeout設定得太小,也可能導致這個問題。

根據TCP的四次握手原理,當對端執行close操作時,它會向本端傳送一個FIN分節。如果本端繼續在這個連線上寫數據,就會觸發對端socket傳送RST報文,這時候本端socket應該也要開始執行close的操作流程了。因此,當遇到網路錯誤104時,應檢查連線是否已經close,以及是否存在數據長度不一致或Nginx配置問題。