用Delphi編寫點對點傳檔案程式(2) (轉)
用Delphi編寫點對點傳檔案程式(2) (轉)[@more@]
用編寫點對點傳(2)
end;
end;
cs.OnRead(Sender: T;Socket: TCustomWinSocket);
var
sTemp:string;
bufSend:pointer;
begin
sRecv:=Socket.ReceiveText;
Case sRecv[1] of
MP_REFUSE:ShowMessage('Faint,be refused!');
MP_ACCEPT:begin
fsSend:=TFileStream.Create(OpenDialog1.FileName,fmOpen);
//iBYTEPERSEND是個常量,每次傳送包的大小。
Socket.SendText(MP_FILEPROPERTY+Trunc(fsSend.Size/iBYTEPERSEND)+1);
end;
MP_NEXTWILLBEDATA:begin
Socket.SendText(MP_NEXTWILLBEDATA);
end;
MP_DATA:begin
try
GetMem(bufSend,iBYTEPERSEND+1);
if (fsSend.Position+1+iBYTEPERSEND) < fsSend.Size then
begin
fsSend.Read(bufSend^,iBYTEPERSEND);
Socket.Senuf(bufSend^,iBYTEPERSEND);
fsSend.Free;
end//普通的傳送,大小為iBYTEPERSEND
else begin
fsSend.Read(bufSend^,fsSend.Size-fsSend.Position-1);
Socket.SendBuf(bufSend^,fsSend.Size-fsSend.Position-1);
end;//最後一次傳送,傳送剩餘的資料
finally
FreeMem(bufSend,iBYTEPERSEND+1);
end;{of try}
end;
MP_ABORT:begin
//被取消了:(
fsSend.Free;
end;
end;{of case}
end;
整理程式:
加入錯誤判斷,程式,把Server和Client聯合在一起,加入剩餘時間進度顯示,做成能一次傳多個檔案,加入功能,就成了一個很好的點對點傳檔案的程式。
用編寫點對點傳(2)
end;
end;
cs.OnRead(Sender: T;Socket: TCustomWinSocket);
var
sTemp:string;
bufSend:pointer;
begin
sRecv:=Socket.ReceiveText;
Case sRecv[1] of
MP_REFUSE:ShowMessage('Faint,be refused!');
MP_ACCEPT:begin
fsSend:=TFileStream.Create(OpenDialog1.FileName,fmOpen);
//iBYTEPERSEND是個常量,每次傳送包的大小。
Socket.SendText(MP_FILEPROPERTY+Trunc(fsSend.Size/iBYTEPERSEND)+1);
end;
MP_NEXTWILLBEDATA:begin
Socket.SendText(MP_NEXTWILLBEDATA);
end;
MP_DATA:begin
try
GetMem(bufSend,iBYTEPERSEND+1);
if (fsSend.Position+1+iBYTEPERSEND) < fsSend.Size then
begin
fsSend.Read(bufSend^,iBYTEPERSEND);
Socket.Senuf(bufSend^,iBYTEPERSEND);
fsSend.Free;
end//普通的傳送,大小為iBYTEPERSEND
else begin
fsSend.Read(bufSend^,fsSend.Size-fsSend.Position-1);
Socket.SendBuf(bufSend^,fsSend.Size-fsSend.Position-1);
end;//最後一次傳送,傳送剩餘的資料
finally
FreeMem(bufSend,iBYTEPERSEND+1);
end;{of try}
end;
MP_ABORT:begin
//被取消了:(
fsSend.Free;
end;
end;{of case}
end;
整理程式:
加入錯誤判斷,程式,把Server和Client聯合在一起,加入剩餘時間進度顯示,做成能一次傳多個檔案,加入功能,就成了一個很好的點對點傳檔案的程式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1002856/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用Delphi編寫點對點傳檔案程式(1) (轉)
- 用Socket實現點對點的檔案傳輸 (轉)
- 用Delphi編寫DelTree程式 (轉)
- 用Delphi編寫安裝程式(1) (轉)
- 用 Delphi 編寫 VxD 裝置驅動程式(轉) (轉)
- 用Delphi編寫塗鴉桌面的小程式 (轉)
- JAVA編寫的斷點續傳小程式Java斷點
- Delphi編碼標準——檔案命名 (轉)
- 點對點(P2P)檔案共享站點的危險
- 對Delphi控制元件的一點改良 (轉)控制元件
- 使用Delphi,SDK編寫Windows簡單程式 (轉)Windows
- 利用Java編寫HTML檔案分析程式(轉)JavaHTML
- 對Delphi控制元件的一點改良(二) (轉)控制元件
- 對Delphi控制元件的一點改良(三) (轉)控制元件
- Delphi編寫網路程式的安全措施 (轉)
- 利用DELPHI編寫WINDOWS外殼 (轉)Windows
- 我對專案管理的一點看法 2(轉)專案管理
- 用 Java 儲存點陣圖檔案 (轉)Java
- Delphi程式碼最佳化(三) 浮點篇 (轉)
- 自己編寫JAVA環境下的檔案上傳元件 (轉)Java元件
- iOS大檔案斷點續傳iOS斷點
- 點對點傳輸現狀,鐳速高速點對點傳輸解決方案
- 防止用DeDe軟體反編譯delphi程式 (轉)編譯
- 利用Delphi編寫IE擴充套件 (轉)套件
- (轉)Qt之qss檔案編寫QT
- Delphi入門點點滴滴
- OkHttp使用+檔案的上傳+斷點續傳HTTP斷點
- delphi讀取ini檔案 (轉)
- HTTP檔案斷點續傳的原理HTTP斷點
- Java實現檔案斷點續傳Java斷點
- 檔案上傳用XML (轉)XML
- 在VB應用程式中使用INI檔案的一點體會 (轉)
- 大檔案上傳、斷點續傳、秒傳、beego、vue斷點GoVue
- 用VC6編寫登錄檔管理程式(三) (轉)
- 用VC6編寫登錄檔管理程式(二) (轉)
- 請問誰有用tcp ip寫的點到點的檔案傳輸的程式碼。能給我一份嗎TCP
- 用DELPHI為ASP開發檔案上載元件 (轉)元件
- PHP大檔案下載(方式2支援斷點續傳)PHP斷點