線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1355
推到 Plurk!
推到 Facebook!

請教關於TNMUDP傳送好像有SIZE的限制也

答題得分者是:RaynorPao
hodalaplus
一般會員


發表:3
回覆:4
積分:1
註冊:2003-10-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-04 20:09:40 IP:163.13.xxx.xxx 未訂閱
本來是在做視訊傳輸,偷懶一點想直接用抓下來的BMP轉JPG後傳到 Client顯示圖片,一開始是用TNMStrm做的,我記得這是用tcp傳輸的 跟同學測試的結果,一秒鐘只能傳輸三個畫面左右(一個jpg現在是13k左右) 想說是不是因為tcp較多程序的關系,試著用TNMUDP的結果一直試不出來, 說我存取非法記憶體的錯誤,但是說明文件裡的傳輸字串是成功的, 後來我想兩個Stream差別只在大小而已,所以試了試,發現最多只能傳送 2048byte的字元,一超過就run-time error了,所以想問是否indy的也會有 限制呢? 還有tcp換成udp可以讓我的傳輸速度加快許多嗎? ps.我看過版主的螢幕傳輸程式了,還沒試就是了,主要是問這個大小限制 是bug還是?? 發表人 - hodalaplus 於 2003/11/04 20:14:06
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-04 20:32:35 IP:61.221.xxx.xxx 未訂閱
引言: 本來是在做視訊傳輸,偷懶一點想直接用抓下來的BMP轉JPG後傳到 Client顯示圖片,一開始是用TNMStrm做的,我記得這是用tcp傳輸的 跟同學測試的結果,一秒鐘只能傳輸三個畫面左右(一個jpg現在是13k左右) 想說是不是因為tcp較多程序的關系,試著用TNMUDP的結果一直試不出來, 說我存取非法記憶體的錯誤,但是說明文件裡的傳輸字串是成功的, 後來我想兩個Stream差別只在大小而已,所以試了試,發現最多只能傳送 2048byte的字元,一超過就run-time error了,所以想問是否indy的也會有 限制呢? 還有tcp換成udp可以讓我的傳輸速度加快許多嗎? ps.我看過版主的螢幕傳輸程式了,還沒試就是了,主要是問這個大小限制 是bug還是??
hodalaplus 你好: 的確會有你所說的情形發生,不過~~真正的原因是什麼,因為小弟我還不確定, 所以我也不敢亂講,建議你試試看 Indy 元件 TIdTCPServer/TIdTCPClient 來 做測試,有關於封包的切割,它裡面已經幫你做掉了,可以省去不少的麻煩
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
hodalaplus
一般會員


發表:3
回覆:4
積分:1
註冊:2003-10-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-04 20:42:07 IP:163.13.xxx.xxx 未訂閱
嗯~先謝過版主了 那如果用UDP,一但遺失封包的話,是整個一系列相關的切割封包都丟棄, 還是會收到一部分的封包自動重組呢? 因為如果是錯誤的封包重組的話,在被TImage元件loadfromstream的時候 會變成run-time error (valid bitmap) 這樣程式會中止執行的, 是否有方法可以檢查有遺失封包讓我能夠丟棄錯重組錯誤的圖片stream呢 ps.用udp的原因是因為現在的元件是用tcp太慢了,想試試udp是否能夠加快許多
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-04 21:05:16 IP:61.221.xxx.xxx 未訂閱
引言: 嗯~先謝過版主了 那如果用UDP,一但遺失封包的話,是整個一系列相關的切割封包都丟棄, 還是會收到一部分的封包自動重組呢? 因為如果是錯誤的封包重組的話,在被TImage元件loadfromstream的時候 會變成run-time error (valid bitmap) 這樣程式會中止執行的, 是否有方法可以檢查有遺失封包讓我能夠丟棄錯重組錯誤的圖片stream呢 ps.用udp的原因是因為現在的元件是用tcp太慢了,想試試udp是否能夠加快許多
hodalaplus 你好: 給你一個小小的建議,也許你可以參考以下這篇文章中的封包切割設計(struct) 把它套用在你的 UDP 裡面,不過這樣做的話,你就要自己撰寫重組封包的程式 碼,以及整個程式的策略都要另外自己定義 (例如: 什麼情況之下,要放棄整張 圖的顯示更新) http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25914 -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
hodalaplus
一般會員


發表:3
回覆:4
積分:1
註冊:2003-10-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-04 21:18:19 IP:163.13.xxx.xxx 未訂閱
嗯~謝謝版主 我想我知道要試哪些東西了,不過版主的意思是說indy的TidUDP也會跟 TNMUDP一樣有大小限制嘍?所以我必須自已處理分割重組的問題? 麻煩版主了
系統時間:2024-05-05 12:32:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!