大侠小虾一起帮我看看,谢谢代码如下:
Procedure TClientThread.Execute;
Var
tmpStr: String;
fileName: String;
iniFile: TIniFile;
fileStream: TFileStream;
client: TIdTCPClient;
size: Int64;
Begin
While Not Terminated Do
Begin
Sleep(10000);
client := TIdTCPClient.Create();
Try
client.ConnectTimeout := 10000;
With client Do
Begin
iniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\gkean.ini');
Try
Host := iniFile.ReadString('Setup', 'IP', '127.0.0.1');
Port := iniFile.ReadInteger('Setup', 'PORT', 6218);
ConnectTimeout := 15000;
Connect; //就在这里,如果服务器端没有运行,程序运行到这里就结束了,好像线程死掉了一样
logger.println('connected.');
...........省略
Except
End;
Finally
//FreeAndNil(iniFile);
iniFile.Free;
End; End;
Finally
//FreeAndNil(client);
client.Free;
End;
End;
{ Place thread code here }
End;
Procedure TClientThread.Execute;
Var
tmpStr: String;
fileName: String;
iniFile: TIniFile;
fileStream: TFileStream;
client: TIdTCPClient;
size: Int64;
Begin
While Not Terminated Do
Begin
Sleep(10000);
client := TIdTCPClient.Create();
Try
client.ConnectTimeout := 10000;
With client Do
Begin
iniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\gkean.ini');
Try
Host := iniFile.ReadString('Setup', 'IP', '127.0.0.1');
Port := iniFile.ReadInteger('Setup', 'PORT', 6218);
ConnectTimeout := 15000;
Connect; //就在这里,如果服务器端没有运行,程序运行到这里就结束了,好像线程死掉了一样
logger.println('connected.');
...........省略
Except
End;
Finally
//FreeAndNil(iniFile);
iniFile.Free;
End; End;
Finally
//FreeAndNil(client);
client.Free;
End;
End;
{ Place thread code here }
End;
解决方案 »
- 修改本地日期和时间,应是2013-03-03 01:13:00,却变成2013-03-03 09:13:00
- Memo 组件中的文字如何锁定呢
- TClientDataSet 保存为xml的问题
- 今天超级幸运,登录CSDN的时候,随机码是88888,散分庆祝!
- 我想要一本书?
- 感觉delphi数据库应用好奇怪
- 谁能讲一下,在DELPHI中各控件和变量的名命标准
- 强烈建议建立一个dxdbgrid的应用专题(不知有没有,我没搜过),因为它太强大了
- 请问各位大哥
- 循环变量怎么如此奇怪?执行完for i:=1 to 20 do 之后i怎么会是20?还望大家帮忙解决!
- 如何在DELPHI中编写程序,使当焦点在一个EDIT中时,EDIT中的值不能是少于4位的任何数
- GetModuleInformation
begin
for i := 0 to strtoint(Edit_ClientNum.text) - 1 do
begin
tcpClient[i] := TIdTCPClient.Create(self);
end;
try
for i := 0 to strtoint(Edit_ClientNum.text) - 1 do
begin
if (Edit2.Text<>'') and (Edit3.Text<>'') then
begin
try
tcpClient[i].Host:=Edit2.Text;
tcpClient[i].Port:=strtoint(Edit3.text);
tcpClient[i].Connect();
GetValue(i);
AppendTreeList(RecordList);
ProgramDelay(10);
except
end;
end;
end;
ClientHandleThread := TClientHandleThread.Create(True);
ClientHandleThread.FreeOnTerminate:=True;
ClientHandleThread.Resume;
except
on E: Exception do MessageDlg ('Error while connecting:'+#13+E.Message, mtError, [mbOk], 0);
end;
end
else
begin
ClientHandleThread.Terminate;
end;这段代码是我以前写的,你可以参考一下
我可以发源码给你(如果你愿意留下email),帮我看看,我delphi一点都不行,就是临时做了这么个东西