成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解決C# Socket發(fā)送數(shù)據(jù)大小問題

開發(fā) 后端
基于TCP協(xié)議的Socket通信,架構(gòu)類似于B/S架構(gòu)。在這里我們選擇的每個文件塊信息包大概是120k左右。

  TCP/IP是可靠性傳輸協(xié)議,它能保證數(shù)據(jù)能按順序的方式到達(dá)目的地.看到以上描述在寫TCP/IP應(yīng)用的時候似乎就可以放心了,只要程序不出意外就數(shù)據(jù)輸傳就是正確.但最近在做一個文件傳輸工作的時候確得到的結(jié)果并不是這樣,發(fā)現(xiàn)網(wǎng)絡(luò)環(huán)境和一次發(fā)送數(shù)據(jù)大會影響整個輸傳結(jié)果.以下是這兩晚的測試情況

  測試內(nèi)容描述:

  每個文件塊信息包大概是120k左右

  采用異步5連接輸傳,雙方的Socket.SendBufferSize和Socket.ReceiveBufferSize都設(shè)置為64K

  測試服務(wù)器分別有:

  局域網(wǎng):ServerA

  在美國機(jī)房:ServerB 延時高,Ping有時會超時

  測試client一臺,通過ADSL上網(wǎng).

  以下是Client從Sever下載文件的情況:

  服務(wù)器8K SendBuffer,客戶端是8K ReceiveBuffer

  從ServerA下載文件,分別下載多個文件幾M到幾百M(fèi)不等,下載后文件正確.

  從ServerB下載文件,分別下載多個文件,幾M或更小的文件有部分正確,大文件基本都是錯誤.兩端記錄的發(fā)送的字節(jié)數(shù)和接收的字節(jié)相等,符合文件大小,程序也沒有跟蹤到數(shù)據(jù)接收異常導(dǎo)致的協(xié)議分解錯誤.

  服務(wù)器4K SendBuffer,客戶端8K ReceiveBuffer

  從ServerA下載文件,分別下載多個文件幾M到幾百M(fèi)不等,下載后文件正確.

  從ServerB下載文件,分別下載多個文件,文件的正確率比較高,不過還是大文件相對錯誤比較多.當(dāng)開啟迅雷下載后情況就開始變壞,大部分接收到的文件都出問題,兩端記錄的發(fā)送的字節(jié)數(shù)和接收的字節(jié)相等,符合文件大小,程序也沒有跟蹤到數(shù)據(jù)接收異常導(dǎo)致的協(xié)議分解錯誤

  服務(wù)器2K SendBuffer,客戶端8K ReceiveBuffer

  從ServerA下載文件,分別下載多個文件幾M到幾百M(fèi)不等,下載后文件正確.

  從ServerB下載文件,分別下載多個文件,下載結(jié)果沒有發(fā)現(xiàn)錯誤文件.當(dāng)開啟迅雷下載后還是有個別文件錯誤,兩端記錄的發(fā)送的字節(jié)數(shù)和接收的字節(jié)相等,符合文件大小,程序也沒有跟蹤到數(shù)據(jù)接收異常導(dǎo)致的協(xié)議分解錯誤

  服務(wù)器1K SendBuffer,客戶端8K ReceiveBuffer

  從ServerA下載文件,分別下載多個文件幾M到幾百M(fèi)不等,下載后文件正確.

  從ServerB下載文件,分別下載多個文件,下載結(jié)果沒有發(fā)現(xiàn)錯誤文件.當(dāng)開啟迅雷下載后沒有發(fā)現(xiàn)文件錯誤.

  測試文件發(fā)送到Server和下載的情況基本差不多,這說明了在網(wǎng)絡(luò)不好的情況處理發(fā)送大數(shù)據(jù)包似首容易產(chǎn)生錯誤,但看TCP/IP協(xié)議講解這情況似乎不存在,因?yàn)楫?dāng)一個發(fā)送數(shù)據(jù)超過某個值的時候,TCP會劃分塊進(jìn)行傳輸并保證其順序.但網(wǎng)絡(luò)不好的情況測試結(jié)果接收的數(shù)據(jù)有錯誤,但處理的數(shù)據(jù)大小是正確的,也并沒影響整個協(xié)議的分解.由于對CP/IP協(xié)議、低層和路由處理的不了解,暫沒找到具體原因。。。不排除程序存在還沒發(fā)現(xiàn)的錯誤,打算給發(fā)送的文件數(shù)據(jù)加上校驗(yàn)再測試一下看情況

  補(bǔ)充一下

  以上測試只修改了一個屬性

  TcpUtils.SendBufferLength = 1K,2K,4K,8K

  但只有1K的測試結(jié)果奇怪地沒出現(xiàn)文件錯誤,其了幾中均出現(xiàn)僅僅是對ServerB,對ServerA來說沒有出現(xiàn),2K,4K也只是開啟迅雷的時候錯誤情況多.

原文鏈接:http://www.cnblogs.com/smark/archive/2012/02/02/2335442.html

【編輯推薦】

  1. 淺析C# Dispose方法模式的建立
  2. C# http分析常用工具淺析
  3. C#HTTP文件傳輸?shù)膶?shí)現(xiàn)淺析
  4. C# HttpWebRequest提交數(shù)據(jù)方式淺析
  5. C#抓取網(wǎng)頁程序的實(shí)現(xiàn)淺析
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-08-06 10:35:27

C# lock thi

2009-08-25 15:23:16

C#子線程

2009-08-21 14:03:04

C#網(wǎng)絡(luò)編程

2009-08-21 11:39:58

C# Socket通信

2009-08-03 16:45:02

C#異步Socket

2009-08-18 16:45:40

C# Raw Sock

2009-08-11 10:42:14

C#算法

2009-08-27 17:14:36

C# Socket

2021-06-11 00:09:20

C#爬蟲版本

2009-08-10 13:49:50

C# txt文件

2009-06-15 09:07:19

微軟Windows 7操作系統(tǒng)

2009-08-13 17:25:18

C# Convert類

2009-08-07 14:47:23

C#路徑問題

2009-07-17 13:13:21

微軟操作系統(tǒng)Windows 7字體大小調(diào)整

2024-09-17 17:50:28

線程線程安全代碼

2009-08-11 09:40:22

張老師的生日問題C#算法

2009-09-03 17:40:25

C#發(fā)送短信

2009-09-03 17:10:57

2009-09-15 17:46:08

C#綁定句柄無效

2009-08-20 16:33:44

Socket異步通訊
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲免费毛片 | 欧美视频网| 大象视频一区二区 | 免费看黄色小视频 | 欧美一级一 | www亚洲成人| 国产免费高清 | 激情91| 一级免费毛片 | 97精品视频在线 | 欧美视频在线播放 | 国产一区二区激情视频 | 久久久国产一区二区三区四区小说 | 国产成人网 | 成年免费大片黄在线观看岛国 | 精品av| 成人在线免费观看 | 视频一区在线 | 国产婷婷| 99热精品6| 国精产品一区二区三区 | 欧美精品免费观看二区 | 亚洲欧美视频 | 五月天综合影院 | 天天看天天操 | 欧美成年人视频在线观看 | 国产亚洲精品综合一区 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 婷婷激情综合 | 欧美精品乱码久久久久久按摩 | 国产视频精品在线 | jav成人av免费播放 | 国产在线网站 | 国产成人精品久久二区二区 | a级毛片毛片免费观看久潮喷 | 久久精品国产99国产精品 | av片免费观看 | 精品国产精品一区二区夜夜嗨 | 亚洲精品一区中文字幕乱码 | 欧美精品一区二区三区在线 | 午夜影院网站 |