我正在爲使用tcpClient的網絡通信構建一些類。我有tcpserver類接受連接並將它們轉移到後臺線程,以便它可以繼續接受該端口上的連接。我可以使用多個客戶端連接到服務器,並執行從服務器到客戶端的文件傳輸。在我的開發機器上運行服務器和客戶端,我獲得了很好的文件傳輸速度(160 mbps左右 - 我正在使用大包數據包)。使用tcpClient進行文件傳輸的奇數減速
我正在測試來自多個客戶端的越來越大的文件傳輸,並且發現了一件奇怪的事情 - 當嘗試發送大文件(> 3gig)時,大約一半的傳輸速度開始緩慢並波動。如果我嘗試發送我的3 gig測試文件(一個.iso),同時還使用兩臺或三臺其他客戶端傳輸大文件(> 500meg),同時也在我的開發機器上運行,則.iso的傳輸可能會放慢抓取並停留那裏...即使在其他客戶完成接收文件之後,每秒1Mg甚至更低也是如此。無論如何,我也可以再次看到速度提升,並在每秒30至80兆克之間波動。
有沒有錯誤,並通過代碼篩選,我只是不知道放緩可能發生的地方。
這可能是一個線程的優先事項?我必須使用大的變量類型來處理文件傳輸的一些元素(一個用於文件大小的int64,另一個用於記錄到目前爲止已經進入的字節數量等)......我可以看到隨着這些變量的值變大而放緩?
任何幫助將不勝感激。
好的......如果我在到達客戶端時沒有真正寫入文件字節,我根本沒有任何這些問題。當我嘗試將字節實際寫入客戶端中的文件時發生了一些情況。我只是用FileStream寫一個字節數組... – Pete 2011-12-25 21:43:54