我一直在網上搜索了幾天,我找不到任何人與VB6 Winsock有這個相同的問題。所以這裏是我的問題,我有一個數組中有兩個winsock的服務器。然後我有兩個客戶端,每個客戶端都有一個winsock控件。現在我建立了服務器首先發送數據給客戶端A.然後客戶端A接收該數據並將其自己的數據發送回服務器。然後,服務器向客戶端B發送數據,一旦客戶端B接收到數據,它將自己的數據發送回服務器。所以數據從客戶端發送到服務器,然後從服務器發送到另一個客戶端,然後返回到服務器,然後到另一個客戶端。我這樣做是因爲當我嘗試以我想要的方式進行時,我遇到了問題。所以我必須以這種方式進行設置,以確保在任何時候只有一個客戶端向服務器發送數據。這個過程完美地工作,但是我希望它以不同的方式工作,因爲就像你可以看到的那樣,客戶端越多,每個客戶端和服務器之間的數據傳輸延遲就越長。Winsock陣列與數據到達同時停止發送數據到客戶端
所以我真正想做的,我無法去工作,有客戶端發送和接收數據到服務器,只要他們想。也就是說,客戶端A將數據發送到服務器,然後服務器發回數據,而客戶端B正在做同樣的事情。當我這樣做時,即使我在服務器上有一個winsock數組,我也遇到了一個問題。當客戶端A首次連接時,它開始向服務器發送和接收數據。但是,一旦客戶端B連接到服務器,客戶端A和服務器之間的所有通信都會停止,只有客戶端B向服務器發送和接收數據。現在我已經完成了一些測試,並且客戶端A始終保持與服務器的連接。但由於某種原因,如果兩個客戶端同時向服務器發送數據,似乎只有一個數據到達事件觸發,即使每個winsock都在不同的端口上。我還沒有安裝VB6 SP6,因爲我不確定這會解決問題。
所以我真的希望有人會閱讀這些內容並向我解釋我不理解的是什麼,或者我做錯了什麼。
您可以發佈您開始收聽的代碼,以及您打開連接的代碼以及您接收和發送數據的代碼嗎? – Hrqls 2013-02-11 08:04:54