2009-12-14 60 views
1

我正在寫一些python,並暫時卡住。 我覺得這個「Nagle algoritm」是問題,因爲我的軟件包由於某種原因延遲了一段時間給客戶端。如何禁用Nagle的套接字算法?

我已經試過這兩個客戶端和服務器上,但它似乎並不工作(或者有引起它的另一個問題):

socketobj.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) 

任何想法?

編輯:我的問題的完整解釋可以在這裏找到: http://www.gamedev.net/community/forums/topic.asp?topic_id=554172&whichpage=1&#3572589

回答

0

我不熟悉Python的插座,但它有一個沖洗方法?即使在Nagle被禁用的情況下,如果不寫X字節數,大多數套接字實現都會緩衝。但是,如果您調用flush,則應立即發送字節。

+0

+1:TCP緩衝區。如果他們不想緩衝,也許他們應該使用UDP。 – 2009-12-14 18:10:05

+0

好吧,TCP標準中沒有什麼內容需要緩衝,但都是這樣做的,因爲發送少於幾個k的數據包效率很低。 – noah 2009-12-14 18:21:28

相關問題