全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2540
推到 Plurk!
推到 Facebook!

Client 傳送檔案問題

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


發表:3
回覆:5
積分:1
註冊:2007-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-16 11:41:16 IP:61.62.xxx.xxx 訂閱
各位大大好,
我在上面有看到Server 與 Client 檔案互傳的一些資料<http://delphi.ktop.com.tw/topic.php?topic_id=25913>,裡面好像都是存成一個Buffer然後再傳輸。
如果我今天直接將我所存的stream傳出去這樣可以嗎? 程式碼如下


[code cpp]
TMemoryStream *File = new TMemoryStream;
File->LoadFormFile("XXX.XX");
ClientSocket1->Socket->SendStream(File);
[/code]

這樣可以行得通嗎?

RaynorPao
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-16 12:22:29 IP:210.208.xxx.xxx 訂閱
(1)建議不要這樣子做,以我個人的經驗分享,利用 TServerSocket/TClientSocket 元件傳送檔案,比較容易掉封包,尤其是傳送的 size 超過 1 MB 以上的時候
(2)如果你要傳送的內容都是檔案的話,一般的檔案 size 通常都會超過 1 MB,因此要完整的傳送完一個檔案,你必須在 client 端自己去切封包,分成好幾次傳送,然後在 server 端再組合回原來的檔案,這樣子做很麻煩,也比較容易出錯
(3)建議你利用 Indy TIdTCPServer/TIdTCPClient 元件來做,不需要自己切封包,這個元件本身就會幫你處理好。可以參考這個範例,再自行修改即可 http://delphi.ktop.com.tw/board.php?cid=168&fid=920&tid=36068
(4)另外,NMStrm 元件也可以參考使用 http://delphi.ktop.com.tw/board.php?cid=168&fid=920&tid=93415
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
編輯記錄
RaynorPao 重新編輯於 2008-09-16 12:28:23, 註解 無‧
系統時間:2017-12-12 4:49:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!