用IdTCPServer1,IdTCPClient1 作为发送接收数据的两端,IdTCPClient1发送,IdTCPServer1做接收...........................
用IdTCPServer1,IdTCPClient1 作为发送接收数据的两端,IdTCPClient1发送,IdTCPServer1做接收
如何显示发送和接收的进度呢?IdTCPServer1的connect事件做接收数据
Server端
TFileStream *fStream;
FileInfo finfo;
FileInfo fInfo;
AThread->Connection->ReadBuffer(&fInfo,sizeof(fInfo));
fStream=new TFileStream("d:\\test.txt",fmCreate );
AThread->Connection->ReadStream(fStream,514413,false);
Memo1->Lines->Add("保存完毕!");
delete fStream;
==========================
Client端
String Message;
FileInfo fInfo;
try{
tcpClient->Disconnect();
tcpClient->Connect();
Memo1->Lines->Add(tcpClient->ReadLn("",5000));
}
catch(Exception &e)
{
Message="连接到服务器"+tcpClient->Host+"失败!"+e.Message;
MessageBox(Handle,Message.c_str(),"错误",MB_ICONWARNING|MB_OK|MB_SETFOREGROUND);;
Memo1->Lines->Add(Message);
return;
}
try
{
strcpy(fInfo.Pwd,"123");
fInfo.Length =514413;// this->giBranchNo;
strcpy(fInfo.DesName,"");
strcpy(fInfo.Name,"");
tcpClient->WriteBuffer(&fInfo,sizeof(FileInfo),true);
Memo1->Lines->Add(":开始发送!数据文件大小:514413字节!");
tcpClient->WriteFile("d:\\a.txt");
iDownFileLen = FileSizeByName(this->asCurDir +"\\"+ExtractFileName(fInfo.DesName));
Memo1->Lines->Add(":开始发送!文件大小:514413字节!");
}
catch(Exception &e)
{
// lgr->Log(1,":"+e.Message);
Memo1->Lines->Add(":"+e.Message);
MessageBox(Handle,e.Message.c_str(),"错误",MB_ICONWARNING|MB_OK|MB_SETFOREGROUND);
}