人笨了,又来提相同的问题,真是不好意思(100分)

  • 主题发起人 主题发起人 whytt
  • 开始时间 开始时间
W

whytt

Unregistered / Unconfirmed
GUEST, unregistred user!
还是文件传输的问题,上次哪个兄弟拿了分后,就不理我了,郁闷呀
我知道问题很菜,可是我还是没搞懂。
这次我花掉我一大半的分数来求解。
问题:用clientsocket和serversocket2个控件来实现文件传输。
求最简单的代码!!!!!(要注释)
本人很少问问题,都是百度,可是百度N多次都没找到看的懂滴,大都是一样滴。
希望朋友把让我明白文件传输的过程,和实现方法,我的头都大了。
代码要注释~(万分感谢拉)
 
DELPHI方面的问题,用百度不如就用这里的全文检索,我搜到1个,你看看:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2488150
 
to :星星
问题:用clientsocket和serversocket2个控件来实现文件传输。
 
刚在书上看到,发都这里开给还不懂的朋友看。
代码是最少滴。
注释也是有滴。嘿嘿

代码:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdTCPConnection, IdTCPClient, IdBaseComponent, IdComponent,
IdTCPServer, StdCtrls;

type
TForm1 = class(TForm)
IdTCPServer1: TIdTCPServer;
IdTCPClient1: TIdTCPClient;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Label4: TLabel;
Button2: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure IdTCPServer1Execute(AThread: TIdPeerThread);
procedure Button1Click(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
t:tmemorystream;
begin
t:=tmemorystream.Create;
athread.Connection.ReadStream(t,-1,true);
t.SaveToFile(edit2.text);
if FileExists(edit2.text) then
showmessage('文件发送成功');
t.Free
end;

procedure TForm1.Button1Click(Sender: TObject);
var
tt:tmemorystream;
begin
tt:=tmemorystream.Create;
tt.LoadFromFile(edit1.text);
idtcpclient1.Connect();
idtcpclient1.WriteStream(tt);
idtcpclient1.Disconnect();
tt.free;
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
edit1.text:=OpenDialog1.FileName;
end;

procedure TForm1.Label4Click(Sender: TObject);
begin
if SaveDialog1.Execute then
edit2.text:=SaveDialog1.FileName;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.
 
这个适合小文件传输,大文件最好分成小块来传
 
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=3443206 现在补上了,
用文件流的。

那个例子,只是单个客户端,如果有很多用户,则要处理并发上传文件。
 
后退
顶部