2012-02-15 246 views
1

我們有涉及C++套接字服務器,與C++服務器通信的Flash客戶端以及將crossdomain.xml提供給Flash客戶端的Python套接字服務器的應用程序。 C++服務器調用REST操作並將結果返回給Flash客戶端。所有這些託管在Linux 64位服務器上 - Debian。Flash客戶端C++服務器連接由對端重置

對於我們的一些用戶,當遊戲服務器試圖從套接字讀取(在​​recv()上)時,我們有很多「通過對等方重置連接」。 Flash策略服務器也具有與「通過對等方重置連接」類似的金額。

我正在尋找想法,資源什麼是這個問題的原因。當然,這不是來自服務器過載 - 用戶有多少 - 有時是3個用戶,有時候是300個用戶。

我們在我們的私人服務器上測試過,情況是一樣的。

什麼我們懷疑來解決這個問題:

  • Flash客戶端的問題與C++服務器和通信在所有插座。
  • 網絡問題
  • 一些組合TCP選項

我們所做的:從客戶端

  • 抓安全和IO錯誤回報。在那裏,我們只要登錄他們:(

我們一直認爲做:

  • 的C++服務器的更改優先級,以10-5 -10 - 我希望這可以提高IO操作

我知道「連接被重置梨」的原因 - 我查很多,其中在計算器和谷歌爲 - 但我不能找到辦法來解決這個問題

+1

這是否在連接的生命早期發生? (你永遠不會收到來自連接的任何數據)或者這發生在一直工作正常的連接? (你已經收到了一些正確的數據。)這是否發生在連發中?還是他們隨機分配? – 2012-02-15 16:22:25

+0

我爲一個遊戲網站做了類似的事情,但是使用普通的簡單XML實現了閃存/服務器通信。我無法幫助你解決問題,只是想知道爲什麼你沒有嘗試更簡單的解決方案。 – vulkanino 2012-02-15 16:22:39

+0

'只有在蘋果設備上纔會發生由梨復位的連接 – 2012-02-15 16:27:44

回答

1

「連接被對方​​復位」。與此無關服務器過載,這是一條消息,告訴您遠程客戶端(或您和客戶端之間的某些網絡設備)主動關閉了網絡連接。

這可能是網絡故障的表現(家庭網關認爲連接超時或您自己的防火牆決定連接處於空閒狀態並超時),或者更可能是客戶端崩潰或用戶剛剛離開頁面所以Flash客戶端關閉。

我不認爲如果沒有來自實際遇到問題的人的意見,您將很容易診斷問題。

+0

嘿,我們正在從Flash客戶端獲取調試日誌 - 那裏有安全異常和一些IO錯誤異常,但對於解決問題並沒有什麼用處。我會檢查「閃存強制關閉插槽的原因」等原因。 – glg 2012-02-15 21:11:22

+0

@glg那麼日誌顯示沒有客戶端崩潰或導航遠離頁面呢? – 2012-02-15 21:16:05

+0

沒有客戶端崩潰,但我們沒有記錄「從客戶端導航」。但是,當我們重複幾次 - 我的Flash客戶端已經關注並且我通過C++套接字服務器的同位連接重置了連接,但是如果遠離客戶端導航 - 套接字將被關閉? – glg 2012-02-16 08:04:32