socket服务端在listen的时候,就处与阻塞状态,怎么解决这个问题;怎么用socket进行文件和图片的传输;先谢了~~~
解决方案 »
- delphi 关闭IE窗口
- database desktop数据表中使用了User这个关键字,插入数据时出错提示使用了关键字,SQL语句应该如何写?
- install shield for delphi6.0哪里有下载
- Sql server 2000:如何清空某一个表格并且将标示列恢复到初始值?
- 请问如何取关键种子值。100送分了
- 怎样安装run time package,多谢各位帮忙,在职线等待
- 该怎样设置QRDBText呢?分不够可再给
- COM+与package的问题
- 如何切割图片为五份?
- 谁知道象股票软件件里键盘精灵一样的怎么做!
- 求助,我的这个 动态创建 ODBC 错误在哪里,哪位大哥,能调式出来,马上揭贴!
- field'xxxx'not found!!
放到线程中
或使用WSAAsyncSelect详细信息请参阅MSDN
但是我还是实现不了图片和文件传输;麻烦各位大侠帮忙~~~~
Con := TIdTCPClient.Create(Self);
try
try
Con.Host := RemoteIP;
Con.Port := RemotePort;
Con.Connect;
FileDT := 'ListFile:' + GetFileDate(AllowFile);
//发送文件日期
Con.WriteLn(FileDT);
//读取状态
Status := Con.ReadLn();
//文件用更新吗?
if Status = 'OK' then
Exit; //文件的总长度
AllLen := Con.ReadInteger();
RecvLen := 0; //接受文件
FileData.isEnd := 0;
F := FileCreate(AllowFile);
try
while FileData.isEnd = 0 do
begin
//读一个包
Con.ReadBuffer(FileData,SizeOf(FileData));
if FileData.Len > 0 then
begin
RecvLen := RecvLen + FileData.Len;
//写到文件里去
FileWrite(F,FileData.Data,FileData.Len);
end;
Sleep(300);
end;
finally
FileClose(F);
end; if AllLen = RecvLen then
WriteCommandFile('reload');
except
on E: Exception do
begin
;
end;
end;
finally
Con.Disconnect;
Con.Destroy;
end;