Client 傳送檔案問題 |
答題得分者是:RaynorPao
|
dacshiu
一般會員 發表:3 回覆:5 積分:1 註冊:2007-05-09 發送簡訊給我 |
各位大大好,
我在上面有看到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 發送簡訊給我 |
(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, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |