請問要如何才能廣播TMemoryStream?? |
答題得分者是:RaynorPao
|
jacky_chan
一般會員 發表:7 回覆:14 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請教各位大大: 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 發送簡訊給我 |
RaynorPao大大您好:
感謝您的回應(終於有人回應了),但我有去查 c++ bulider 的 help,它裡面寫說它只能傳 string 的資料,我也試過把 memorystream 存成 string ,然後在 client 端收的 stream 存成 jpg 檔,但卻讀不出來圖片,檔案大小卻一樣(1.06 k),這是為什麼呢?是不是 jpg 檔無法存成 string ? 有沒有什麼解決的方法呢? > 以下是我的程式 >
#>>>>>>>>>>>>
#>>>>>>>>>>
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 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 發送簡訊給我 |
|
jacky_chan
一般會員 發表:7 回覆:14 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
jacky_chan
一般會員 發表:7 回覆:14 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 各位大大: 怎麼辦!我把圖片分割成 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 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
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 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 各位大大好: 已經過好幾天了... 看來好像沒有 TCP 的元件可以做 Broadcast 的功能,不過我還是要感謝 RaynorPao 和 brook 兩位大大精湛的見解,不過該不真的要自己寫一個 > >>< face="Verdana, Arial, Helvetica"> jacky_chan 你好: 如果擔心封包會掉的話,那最好還是使用 TCP 吧
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
shinnuei
一般會員 發表:32 回覆:48 積分:21 註冊:2002-03-13 發送簡訊給我 |
TCP 不能做 BroadCast 是先天上的關係,小弟之前做的一個專案是利用 UDP 去廣播一些訊息,
讓client知道server在那裡等等的資訊,因為這些資訊不大,所以可以隔幾秒就廣播一次,而
client得知server的位置後,還是用較為可靠的tcp來做連線的動作。
要用udp做廣播不lose的一個方法應該是由server和client去維護一個table,這個table存放的
是那些資料己傳送、那些己收到…很累人的…
如果沒有必要、還是該廣播就用udp,該連線就用tcp…在使用tcp的時候,上述的table是由os去
維護的,發生錯誤的機率是非常非常小的…
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |