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

Tserversocket 傳輸文件的問題

尚未結案
flyfish_chs
一般會員


發表:1
回覆:0
積分:0
註冊:2005-01-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-05 09:47:49 IP:218.81.xxx.xxx 未訂閱
傳輸文件的問題 在線程處理過程裏面 Procedure TClientThread.ClientExecute; 執行以下的語句 GetMem(bufSend,ThreadSendStream.size); // ThreadSendStream是從一個jpg文件中得到的Tmemorystream流 try ThreadSendStream.Read(bufSend^,ThreadSendStream.Size ); SendResult:=ClientSocket.SendBuf(bufSend^,ThreadSendStream.Size); finally FreeMem(bufSend,ThreadSendStream.Size); end; Receivedata: array [0..3,0..1] of Longint //總體變數 在用戶端Tclientsocket的OnRead裏面 iLength:=Socket.ReceiveLength; GetMem(bufRecv,iLength); Socket.ReceiveBuf(bufRecv^,iLength); try Receivedata[0,0]:=ReceiveData[0,0] iLength; ProgressBar.Max :=Receivedata[0,1]; // Receivedata[0,1]爲之前收到的伺服器傳輸文件的大小。文件大小在24K左右 ProgressBar.Position:=Receivedata[0,0]; StatusBar1.Panels[0].Text:='正在傳輸' Chanel1.Hint '圖像,已完成' Inttostr(Trunc((Receivedata[0,0] / Receivedata[0,1])*100)) '%'; Recstream[0].WriteBuffer(bufRecv^,iLength);// if Receivedata[0,0]>=Receivedata[0,1] then begin Socket.SendText(MP_END); //完成傳輸 End; Finally freeMem(bufRecv,iLength); end; 問題是,在局域網內傳輸的時候有的電腦是正常的,有的電腦接收到的資料包長度〉實際伺服器端發送的資料包長度。Receivedata[0,0]- Receivedata[0,1]〉0 但是在廣域網傳輸就沒有問題。而且同樣的一台電腦在局域網工作不正常。但在廣域網就沒有問題。
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-26 13:51:13 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-05-19 14:22:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!