关于INDY 专门写 Indy的书很少.只能在网上找了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 官网上有关于Indy的Demo去下了研究研究 谁有关于IDTCPCLIENT 和idtcpserver的文件传输入的详细代码?那谁有这方面的程序啊..能发给我吗?最好是自己写的..你们一般用什么来技术来网络编程啊,是直接用WINSOCKET APT吗? TCP较UDP复杂一些,主要是要使用到线程通讯,管理同步等,如果允许的话使用UDP吧我对TCP 有一些了解,如果愿意我们可以联系。 //客户端procedure TForm1.BT2Click(Sender: TObject);var SResponse: string; fStr:TFileStream; fNum,i,imod:Integer; memStr:TMemoryStream; FileName:string; FileSize:integer;begin with IdTCPClient1 do begin idtcpclient1.Host:=edit1.Text; idtcpclient1.Port:=strtoint(edit2.text); Connect(); while Connected do begin try // SResponse := UpperCase(ReadLn); // if Pos('HELLO', SResponse) = 0 then // Break; ProgressBar1.Visible := true; FileName := 'e:\11.txt'; FileSize :=20; fStr := TFileStream.Create(FileName,fmOpenRead); iMod := fStr.Size mod FileSize; if iMod=0 then begin fNum := fStr.Size Div FileSize; iMod := FileSize; end else fNum := (fStr.Size Div FileSize)+1; ProgressBar1.Max := fNum; fStr.Position := 0; for i:=0 to fNum-2 do begin memStr := TMemoryStream.Create ; memStr.CopyFrom(fStr,FileSize); OpenWriteBuffer; WriteStream(memStr); CloseWriteBuffer; memStr.Free ; ProgressBar1.Position := i; Application.ProcessMessages ; end; memStr := TMemoryStream.Create ; memStr.CopyFrom(fStr,iMod); OpenWriteBuffer; WriteStream(memStr); CloseWriteBuffer; memStr.Free ; //ProgressBar1.Visible := false; fStr.Free ; finally Disconnect; end; end; end;end;//服务端procedure TForm1.Button1Click(Sender: TObject);beginidtcpserver1.DefaultPort:=strtoint(edit1.text);idtcpserver1.Active:=true;button1.Enabled:=false;showmessage('服务器成功启动');end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);var FStr,aMemStr:TMemoryStream;begin with AThread.Connection do begin statusbar1.SimpleText:='正在接收文件'; // WriteLn('Hello from Indy TCP Stream Server.'); FStr := TMemoryStream.Create; try while Connected do begin aMemStr := TMemoryStream.Create ; ReadStream(aMemStr, -1, True); FStr.CopyFrom(aMemStr,aMemStr.Size); aMemStr.Free ; end; FStr.Seek(0, soFromBeginning); FStr.SaveToFile('e:\c.txt'); FStr.Free ; finally Disconnect; end; end; statusbar1.SimpleText:='接收完文件';end; 如何用DELPHI编程实现修改区域和语言选项 三层结构客户端连接应用服务器问题 installshieldexpress打包后其他机器用不了 Button中设置Alt+加速键字母的问题 位的算法? 菜鸟问题: ADOTable1.Delete 不能删除指定的记录 钩子能给我解释一下吗? 急,高分相送! 简单的问题,不过很急啊 如何在DELPHI中动态改变端口 请各位给点 初学者意见 关于SendMessage和PostMessage
去下了研究研究
那谁有这方面的程序啊..能发给我吗?最好是自己写的..
你们一般用什么来技术来网络编程啊,是直接用WINSOCKET APT吗?
我对TCP 有一些了解,如果愿意我们可以联系。
procedure TForm1.BT2Click(Sender: TObject);
var
SResponse: string;
fStr:TFileStream;
fNum,i,imod:Integer;
memStr:TMemoryStream;
FileName:string;
FileSize:integer;
begin
with IdTCPClient1 do
begin
idtcpclient1.Host:=edit1.Text;
idtcpclient1.Port:=strtoint(edit2.text);
Connect();
while Connected do
begin
try
// SResponse := UpperCase(ReadLn);
// if Pos('HELLO', SResponse) = 0 then
// Break;
ProgressBar1.Visible := true;
FileName := 'e:\11.txt';
FileSize :=20;
fStr := TFileStream.Create(FileName,fmOpenRead);
iMod := fStr.Size mod FileSize;
if iMod=0 then
begin
fNum := fStr.Size Div FileSize;
iMod := FileSize;
end
else
fNum := (fStr.Size Div FileSize)+1;
ProgressBar1.Max := fNum;
fStr.Position := 0;
for i:=0 to fNum-2 do
begin
memStr := TMemoryStream.Create ;
memStr.CopyFrom(fStr,FileSize);
OpenWriteBuffer;
WriteStream(memStr);
CloseWriteBuffer;
memStr.Free ;
ProgressBar1.Position := i;
Application.ProcessMessages ;
end;
memStr := TMemoryStream.Create ;
memStr.CopyFrom(fStr,iMod);
OpenWriteBuffer;
WriteStream(memStr);
CloseWriteBuffer;
memStr.Free ;
//ProgressBar1.Visible := false;
fStr.Free ;
finally
Disconnect;
end;
end;
end;
end;
//服务端
procedure TForm1.Button1Click(Sender: TObject);
begin
idtcpserver1.DefaultPort:=strtoint(edit1.text);
idtcpserver1.Active:=true;
button1.Enabled:=false;
showmessage('服务器成功启动');
end;
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
FStr,aMemStr:TMemoryStream;
begin
with AThread.Connection do
begin
statusbar1.SimpleText:='正在接收文件';
// WriteLn('Hello from Indy TCP Stream Server.');
FStr := TMemoryStream.Create;
try
while Connected do
begin
aMemStr := TMemoryStream.Create ;
ReadStream(aMemStr, -1, True);
FStr.CopyFrom(aMemStr,aMemStr.Size);
aMemStr.Free ;
end;
FStr.Seek(0, soFromBeginning);
FStr.SaveToFile('e:\c.txt');
FStr.Free ;
finally
Disconnect;
end;
end; statusbar1.SimpleText:='接收完文件';end;