我正在爲服務器端實現基於Twisted的客戶端 - 服務器解決方案,例如和Android手機爲客戶端。 由於Andoird模擬器不採用TCP包大於1500b(或更少?),我需要能夠在服務器端對數據包進行塊存儲。在每次「transport.write」之後,如果沒有刷新套接字,Twisted會緩存外發數據,所以如果沒有某種手動或自動flush/maxpacketsize函數,分塊將無用。我如何在Twisted中執行此操作? 我熟悉「reactor.doSelect(1)」函數,但由於我使用EPoll反應器(爲了可伸縮性和性能方面的原因),我不能使用doSelect。是否有可能爲Twisted內的某些連接更改maxPacketValue?扭曲的Python:最大數據包大小?沖洗插座?
希望有人能告訴我光...
這太奇怪了,問題只是神奇地解決了自己......沒有通過客戶端的大型測試包現在再次工作,我不知道爲什麼......現在我會說,案例關閉! – Dirk
你不應該打電話給doSelect。它不會做你的想法。 –
這個問題並沒有神奇地解決問題。您的網絡狀況發生了變化,因此恰好可以正常工作......現在。但它會改變回來,並再次被打破。看到我的答案,應該解釋如何修復你的代碼。 – Glyph