文件名称:瞬傳多筆資料的TCP封包(使用接收端處理)--Client
文件大小:406KB
文件格式:ZIP
更新时间:2009-03-15 02:52:39
控件 数据库应用 源码 资源
當遇到「發送端」狂送資料時,因為TCP不會一筆資料一筆資料封包傳送,因為太快了,TCP會先把全部的資料一起打包,做一個封包來傳送,這會造成「接收端」收到一個大封包,如果接放端不知道這是很多筆資料所包成的,必會無法讀出封包的資料。通常一般人會在「發送端」做手腳,如: 加個Sleep(5)或是用Timer來讓資料無法連著送(雖然還是狂送),但如果不能在「發送端」做手腳呢??像是我們是用自己的程式由TCP/IP去收別人程式傳過來的資料,你能保證別人會幫你先做處理嗎?所以我們就得在「接收端」另做處理,就是這個程式,我由Client當「發送端」,由Server當「接收端」,Client可以先把資料收集起來,放在Queue,再用傳送,瞬間一次全部傳給Server(用迴路從Queue中一筆一筆狂丟)。Server收到資料,不馬上處理,而是先放在一個buffer,在buffer裡做緩衝和分析封包,看這封包是由幾個資料所構成的,再一一讀出封包內的資料。這是在client用queue,如果想試試更快的,可以寫個for迴圈,一直猛sendbuf(),就可以知道Tcp/ip打包的方式了。