2012-07-31 126 views
-3

我使用Delphi XE2和indy 10.5.8.0沒有解決方案的衆所周知的idMappedPortTCP問題?

我遇到了6年前在這篇文章中描述的完全相同的問題!

http://www.delphigroups.info/2/1/213924.html

我有一個簡單的表格,只需設置一個活動idMappedPortTCP組件。 它按預期工作了幾秒鐘輸入/輸出,而不是突然凍結。 組件停止響應,而應用程序中的所有其他應用程序仍然可以正常工作

可惜是一樣的確切項目像一個冠軍indy9!但我不能用我indy9必須堅持indy10 :(

我簡直不能相信任何人提供任何解決方案或爲這個衆所周知的問題的解決方法還必須有一個解決方案!

+0

它是開源的。如果錯誤修復的速度不符合您的喜好,請隨時制定解決方案並自行提交。我相信Indy團隊會感謝你的幫助。 – 2012-07-31 23:51:05

+0

網絡組件難以使用和理解,因爲網絡難以使用和理解。但是這聽起來像雷米曾經說過,如果你只是啓用超時(將它們設置爲60秒),那麼所謂的「鎖定」將只會成爲超時,而不再那麼可怕,是嗎? – 2012-08-01 02:51:14

+1

這並不能解釋爲什麼它和indy9一起工作。如果某些東西在早期版本的compo中有效並且會在下一個版本中停止工作,那麼就會出現問題。我感謝Remy的工作和整個indy員工的努力,但idMappedPortTCP的indy10版本不起作用,這是事實。現在我們可以爭論關於select()是否有小故障,但它曾經與indy9一起工作,現在它沒有,也沒有人關心。時間。我會試着找出一個解決方案,如果我能得到它的工作,我會很樂意分享和看到組件恢復生活。非常感謝 – user1566931 2012-08-01 20:21:07

回答

9

在那之前沒有任何關於它的事情,正如我在6年前的討論中所解釋的那樣,根源問題是由於某些條件下舊版本的操作系統下微軟部分的API函數凍結造成的。 Indy的問題在今天,它不是Indy的問題今天,唯一的方法是select()不再是掛起,因爲它等待着永遠不會發生的套接字狀態改變,因爲默認情況下Indy使用無限超時,看起來像在印第安納州,這真的是一個網絡問題代替。換句話說,Indy正在等待從未到達的入站數據。您可以使用數據包嗅探器來驗證。

+0

+1,謝謝Remy在你的時間和在這裏的幫助。 – 2012-08-01 02:47:15