大侠小虾一起帮我看看,谢谢代码如下:
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;
解决方案 »
- delphi上的其他语言使用方法
- 怎樣看sql語句,兄台。
- idtcpserver的最大连接数问题.
- 急切需要解决的问题!帮忙。
- 数据显示!
- 如何控制TDBGRID的保存问题
- 为什么这条语句不能把编号最大的记录选出来?ADOQuery1.SQL.Add('SELECT * FROM 测试 WHERE 编号=Max(编号)');
- 如何调用Windows Shell菜单之----Windows Shell菜单中当没有目录和文件选中时又当如何将其获取?
- 〓 〓 〓 〓 如何获取ip地址 〓 〓 〓 〓
- 请问DELPHI怎样定义?
- 如何在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一点都不行,就是临时做了这么个东西