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

請問要如何才能廣播TMemoryStream??

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


發表:7
回覆:14
積分:4
註冊:2003-05-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-21 22:52:37 IP:211.76.xxx.xxx 未訂閱
請教各位大大: IdUDPServer->Broadcast 除了可以廣播 string 外,可以廣播 stream 嗎? 除了用IdUDPServer可以廣播外,有什麼元件可以有廣播 stream 的功能?    ps.還是可以把圖片(JPG)的 stream 轉成 AnsiString 再廣播出去,等 client 端收到再從 stream 轉存成tmp.jpg    希望知道的大大可以回應我    Thanks
RaynorPao
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-23 21:24:05 IP:61.221.xxx.xxx 未訂閱
引言: 請教各位大大: IdUDPServer->Broadcast 除了可以廣播 string 外,可以廣播 stream 嗎? 除了用IdUDPServer可以廣播外,有什麼元件可以有廣播 stream 的功能? ps.還是可以把圖片(JPG)的 stream 轉成 AnsiString 再廣播出去,等 client 端收到再從 stream 轉存成tmp.jpg 希望知道的大大可以回應我 Thanks < face="Verdana, Arial, Helvetica">
jacky_chan 你好:
(1)如何例用 IdUDPServer 做 Broadcast?? 請參考以下的連結文章
    >
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
jacky_chan
一般會員


發表:7
回覆:14
積分:4
註冊:2003-05-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-24 00:57:30 IP:211.76.xxx.xxx 未訂閱
RaynorPao大大您好: 感謝您的回應(終於有人回應了),但我有去查 c++ bulider 的 help,它裡面寫說它只能傳 string 的資料,我也試過把 memorystream 存成 string ,然後在 client 端收的 stream 存成 jpg 檔,但卻讀不出來圖片,檔案大小卻一樣(1.06 k),這是為什麼呢?是不是 jpg 檔無法存成 string ? 有沒有什麼解決的方法呢? > 以下是我的程式 > #>>>>>>>>>>>> #>>>>>>>>>>
RaynorPao
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-24 09:40:27 IP:203.73.xxx.xxx 未訂閱
引言: RaynorPao大大您好: 感謝您的回應(終於有人回應了),但我有去查 c bulider 的 help,它裡面寫說它只能傳 string 的資料,我也試過把 memorystream 存成 string ,然後在 client 端收的 stream 存成 jpg 檔,但卻讀不出來圖片,檔案大小卻一樣(1.06 k),這是為什麼呢?是不是 jpg 檔無法存成 string ? 有沒有什麼解決的方法呢? > 以下是我的程式 > #>>>>>>>>>>>> #>>>>>>>>>>>< face="Verdana, Arial, Helvetica">
jacky_chan 你好:
(1)小弟我前兩天出差,因此回問題晚了點
(2)我的程式碼和你的差不多,可以成功 broadcast 一個 2.5 K 大小的 jpeg
   檔案
// >>>>>>>>>>>>>>>    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
brook
資深會員


發表:57
回覆:323
積分:371
註冊:2002-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-24 10:12:21 IP:218.160.xxx.xxx 未訂閱
1.我覺得用廣播去傳一個檔案, 甚至是訊息, 應該是對方有沒有收到都沒關係, 就算對方在線上, 也有可能廣播了3,4次才有一次成功. 2.你用udp傳輸, 原本就是不可靠的傳輸, 更別想每次傳對方一定收到, 要不然就不會有人會用FTP了. 你用udp傳輸,就必須自己去檢查資料正不正確.
jacky_chan
一般會員


發表:7
回覆:14
積分:4
註冊:2003-05-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-24 14:56:38 IP:140.131.xxx.xxx 未訂閱
感謝二位大大的回答: 首先感謝包子大哥的程式,原來是我先把 >
jacky_chan
一般會員


發表:7
回覆:14
積分:4
註冊:2003-05-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-24 16:25:40 IP:140.131.xxx.xxx 未訂閱
各位大大: 怎麼辦!我把圖片分割成 32(8x4) 個,然後在存每個圖片時,就立刻 Broadcast,可是 client 端卻只收到 16 個左右的圖片 ..... 怎麼會這樣呢?難道這就是 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
RaynorPao
版主


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-24 16:34:21 IP:203.73.xxx.xxx 未訂閱
引言: 各位大大: 怎麼辦!我把圖片分割成 32(8x4) 個,然後在存每個圖片時,就立刻 Broadcast,可是 client 端卻只收到 16 個左右的圖片 ..... 怎麼會這樣呢?難道這就是 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>< face="Verdana, Arial, Helvetica">
jacky_chan 你好:
(1)容易掉封包是 UDP 的特性
(2)試著在你每次 Broadcast 之後 ::Sleep(100); 看看情況會不會好一點??
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
jacky_chan
一般會員


發表:7
回覆:14
積分:4
註冊:2003-05-29

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-07-24 17:28:39 IP:140.131.xxx.xxx 未訂閱
RaynorPao大大您好:     (1) 無論有沒有::Sleep(100); ,client端所收到的檔案數都一樣耶,並沒有善改,甚至於::Sleep(1000); ,還是一樣          (2) 我想請問一下有沒有 TCP 的元件可以 Broadcast 的呢?因為我不想Client 端收到的圖片東缺一塊西缺一塊的
brook
資深會員


發表:57
回覆:323
積分:371
註冊:2002-07-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-07-25 12:20:25 IP:218.160.xxx.xxx 未訂閱
1. 之前我有測過, 假如每次傳 2048byte/每秒, 常常收到10筆, 就隔10秒才又收到資料, 中間少了約10筆資料, 但改成每四分之一傳1024byte, 就好了很多, 所以你也改成每次傳1024byte看看. 2.我覺得無論是用數據機或adsl網路,傳輸中資料不見是正常的事, 無論是udp,tcp,ftp, 因為我們也常用FTP下戴檔案下戴到掛掉了也是常有的事.所以你用什麼通訊協定, client和server端一定要有簡單的溝通語言, 才能確保資料不lose.
例:  server端                          client端
     SendFileName:AAA SIZE:共幾筆-->   (假如沒收到 sever 多久要重送)
                                 <--   準備接收資料 
     SendData:第一筆             -->   (假如沒收到 sever 多久要重送)
                                 <--   確定接收到第幾筆資料
    (假如收到第一筆,再來就收到第3筆,是確定收到第1筆, 讓主機重第2筆開始送)
反正都是很麻煩的, 想辦法讓2部電腦溝通得上就好了, 我目前也正在努力中... 大家一起努力.
jacky_chan
一般會員


發表:7
回覆:14
積分:4
註冊:2003-05-29

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-07-29 21:21:08 IP:140.131.xxx.xxx 未訂閱
各位大大好: 已經過好幾天了... 看來好像沒有 TCP 的元件可以做 Broadcast 的功能,不過我還是要感謝 RaynorPao 和 brook 兩位大大精湛的見解< >,不過該不真的要自己寫一個 > 頭腦混沌中 .....< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >
RaynorPao
版主


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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-07-29 22:09:00 IP:61.221.xxx.xxx 未訂閱
引言: 各位大大好: 已經過好幾天了... 看來好像沒有 TCP 的元件可以做 Broadcast 的功能,不過我還是要感謝 RaynorPao 和 brook 兩位大大精湛的見解,不過該不真的要自己寫一個 > < face="Verdana, Arial, Helvetica"> jacky_chan 你好: 如果擔心封包會掉的話,那最好還是使用 TCP 吧
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
shinnuei
一般會員


發表:32
回覆:48
積分:21
註冊:2002-03-13

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-11-23 22:33:33 IP:61.221.xxx.xxx 未訂閱
TCP 不能做 BroadCast 是先天上的關係,小弟之前做的一個專案是利用 UDP 去廣播一些訊息, 讓client知道server在那裡等等的資訊,因為這些資訊不大,所以可以隔幾秒就廣播一次,而 client得知server的位置後,還是用較為可靠的tcp來做連線的動作。 要用udp做廣播不lose的一個方法應該是由server和client去維護一個table,這個table存放的 是那些資料己傳送、那些己收到…很累人的… 如果沒有必要、還是該廣播就用udp,該連線就用tcp…在使用tcp的時候,上述的table是由os去 維護的,發生錯誤的機率是非常非常小的…
系統時間:2024-05-05 11:51:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!