2011-05-21 97 views
1

我正在開發ActiveX EXE(即在一個單獨的線程上)的套接字讀取。與ActiveX EXE的套接字通信

我可以安全地獨立讀取多少個套接字?

我正在使用Windows XP操作系統。

+0

獨立於什麼?並安全地相對於什麼? – Piskvor 2011-05-21 12:18:46

+0

@Piskvor,彼此獨立(ActiveX EXE在獨立進程中運行),並且從線程安全的角度來看是安全的。 – ramu 2011-05-21 12:40:14

+0

就我所見,線程安全並不是一個問題,除非你的意思是別的,而不是我的想法。 「我可以讀取的套接字」聽起來很奇怪,你是問Winsock控制實例是否被主動連接並傳遞數據?如果是這樣,可能接近您在主程序中可以使用的數量。 – Bob77 2011-05-21 16:43:46

回答

0

我認爲這可能是操作系統的限制 - 我想我記得在幾年前我使用的XP機器上運行了80個套接字的限制。

+0

你是否成功地在80個線程上獨立運行80個套接字? – ramu 2011-05-23 05:46:43

+0

@ramu:不,他們只是80個針對80個客戶開放的winsock對象實例。該計劃像往常一樣事件驅動。線程將如何改變? – quamrana 2011-05-23 08:31:30

+0

我正在編寫獨立進行每個套接字通信的代碼。這就是爲什麼我選擇ActiveX EXE.Client應用程序只是觸發通信,ActiveX EXE會通知客戶端的事件。所以我關心的是兩個方面。 1.)應用程序可以創建的套接字的最大數量(從操作系統的角度來看)2. VB可以提供線程安全性的最大線程數。希望現在清楚:-) – ramu 2011-05-23 09:04:22

0

我會建議你放棄你的努力,並與商業解決方案。我記得在九十年代重新走上了這條道路,並且在線程運行的時候遇到了ActiveX EXE的磚牆。事情是,ActiveX EXE是單元線程的,而不是自由線程的,所以你不會得到完全獨立的線程。

在現代語言中正確地完成服務器端線程已經夠難了,更不用說那些不是爲此目的而設計的。

我最終從Dart購買了Server Sockets。輕鬆實現該項目的最佳投資。性能真的很棒 - 你只受系統資源的限制。

+0

我正在使用試用版的組件您建議。感謝您分享信息。 – ramu 2011-05-24 05:05:14

0

MSWINSCK.OCX是一種非常古老的做事方式;它帶有Visual Basic 6.0,我記得在什麼時候使用它。我不確定它的授權......顯然它在32位win7下注冊,但不是64位;這裏有一個如何讓它在64位系統上註冊的鏈接:http://angrybyte.com/windows-hacks/mswinsck-ocx-for-64-bit-windows-7-vista/

如果你有一個MSDN訂閱或類似的,使你能夠下載開發工具(bizSpark等也可以),那麼我相信這也會給你一個重新分配.ocx的許可。

(順便說一句,我真的不記得了接口,但我似乎記得它是至少略高於Berkeley套接字更直觀()接口。)

然而,個人推薦給您的要求:學習API,這裏有很多例子,並且只需要編寫一個類,以類似於.NET Socket類的方式封裝它們;這些API並不那麼難,而且我確定有很多在這裏也有幫助,而且這可能比依靠像控制器這樣過時的東西更好...