- 論壇徽章:
- 0
|
原帖由 epegasus 于 2009-9-21 15:07 發(fā)表 ![]()
以1M算,32MB能緩沖20多秒,網(wǎng)絡(luò)速度一般都是10M,100M的,何來"網(wǎng)絡(luò)傳輸跟不上數(shù)據(jù)產(chǎn)生速度"一說?
我在UNIX.Network.Programming.Volume.1中,查了socket的buffer默認情況是4096Byte,我目前開發(fā)板上的linux就是這個上限,但該socket的接收和發(fā)送緩沖區(qū),據(jù)書上所說,最多能夠設(shè)置到from 8,192 to 61,440 bytes. 所以我覺得雖說網(wǎng)卡是10/100M自適應(yīng)的,但是最大只能達到61440 *8約為500K比特,遠不到1M,所以10/100M是個和操作系統(tǒng)有關(guān)系的理論值嗎? 小弟對這不太清楚哈!
另外在我的開發(fā)板上,我增加我的發(fā)送緩沖區(qū)大小,但是好像不起作用,不知道是何原因!可能是我的客戶端程序構(gòu)建的有問題,服務(wù)器每發(fā)送一塊數(shù)據(jù)過來,我需要休眠不到1秒,才可以繼續(xù)向我的windows上客戶端發(fā)送下一包數(shù)據(jù),不然客戶端會停機。在客戶端這種情況,如果用線程處理好的話,是否可以消除這種情況!
正因為 我服務(wù)器段休眠約一秒之后,在發(fā)送下一包4096Byte的數(shù)據(jù),才導(dǎo)致了“網(wǎng)絡(luò)傳輸跟不上數(shù)據(jù)產(chǎn)生速度"一說!
對于這種大數(shù)據(jù)量的 網(wǎng)絡(luò)傳輸,有沒有什么開源的類似代碼參考呢? 謝謝指教! |
|