請問一個傳檔程式的問題 |
尚未結案
|
sue690226
一般會員 發表:23 回覆:15 積分:7 註冊:2004-07-24 發送簡訊給我 |
各位好!今天我使用ClientSocket和ServerSsocket作連線傳檔的動作。
我使用版上分享的寫法如下:
不過這個程式在區域網路下測試相當完美。但是我拿回家中使用ADSL傳送檔案。檔案太大約超過K就無法接收到。請問各位是什麼問題。謝謝祝平安
首先是傳送端:
TMemoryStream *msFile=new TMemoryStream;
msFile->LoadFromFile("ECG.Eps");
MYPACK mp;
int i=0;
int block=(msFile->Size%MAX_DATASIZE==0)?
msFile->Size/MAX_DATASIZE: msFile->Size/MAX_DATASIZE+1; for(i=0; i
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
你用的是UDP型態的SOCKET,按照一般測試值只要傳送超過1.5K的資料包,對方可能就會漏失掉,因此使用這種SOCKET一次傳送的資料包不要超過1.5K,建議在1K以下,所以要分割適當的大小傳送。另外在區網內之所以不會漏失掉,是因為網路通信協定偵測到你所送的目的端是在同一MASK內所以採用廣播的方式傳送,因此資料沒有上述漏失的情形。 -----------------------------------------------
Creation is the fundation of promotion.
|
sue690226
一般會員 發表:23 回覆:15 積分:7 註冊:2004-07-24 發送簡訊給我 |
引言: 你用的是UDP型態的SOCKET,按照一般測試值只要傳送超過1.5K的資料包,對方可能就會漏失掉,因此使用這種SOCKET一次傳送的資料包不要超過1.5K,建議在1K以下,所以要分割適當的大小傳送。另外在區網內之所以不會漏失掉,是因為網路通信協定偵測到你所送的目的端是在同一MASK內所以採用廣播的方式傳送,因此資料沒有上述漏失的情形。 ----------------------------------------------- Creation is the fundation of promotion.謝謝你的回答~請問為什麼是UDP呢?因為書上不是說這樣的寫法是TCP的傳送。??這是我不解的。在請問那最好最快的解決方法是什麼呢? |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |