我做了个NTService,运行正常,做了个用ClientSocket连接服务器的程序正常,但是,当我
把ClientSocket程序转移到NTService,服务可以正常启动,可是碰到以下问题:1。ClientSocket连接服务器错误,连不上;2。服务关闭时出现错误。请大家帮忙看看,我已经困惑好久了
把ClientSocket程序转移到NTService,服务可以正常启动,可是碰到以下问题:1。ClientSocket连接服务器错误,连不上;2。服务关闭时出现错误。请大家帮忙看看,我已经困惑好久了
请描述清楚。
你的意思是不是说 你单独做NT SERVICE的时候是成功的
做ClientSocket应用程序也是成功的可是..却有问题贴出你将 ClientSocket程序转移到NTService 的主要代码
包括
1. 创建服务之类的
2. Socket的连接代码
3. 关闭时候的代码 已经错误信息。。
把ClientSocket程序移植到NTService,服务可以正常启动,可是碰到以下问题:1。ClientSocket连接服务器错误,连不上;2。服务关闭时出现错误。
请大家帮忙下边是我的代码:procedure TServiceSMS.SMSStart;
begin
FIP := '211.136.11.111';
FPort := 8012;
ClientSocket.Address := FIP;
ClientSocket.Port := FPort; Write_Log('开始连接服务器....');
for i := 0 to 4 do
begin
if ClientSocket.Active then
ClientSocket.Active := true;
sleep(1000);
Write_Log('尝试连接....');
if ClientSocket.Active then break;
end;
if ClientSocket.Active then
write_Log('连接成功!')
else
write_Log('连接失败!');
end;procedure TServiceSMS.SMSStop;
begin
with ClientSocket do
begin
if Active then
Active := false;
end;
end;procedure TServiceSMS.ServiceStart(Sender: TService; var Started: Boolean);
begin
SMSStart;
started := true;
end;procedure TServiceSMS.ServiceExecute(Sender: TService);
begin
while not Terminated do
begin
if not ClientSocket.Active then
SMSStart;
sleep(60000);
end;
end;procedure TServiceSMS.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
SMSStop;
Stopped := true;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to 4 do
begin
if not ClientSocket1.Active then
ClientSocket1.Active := true;
sleep(1000);
Memo1.Lines.Add('尝试连接....');
if ClientSocket1.Active then break;
end;
if ClientSocket1.Active then
Memo1.Lines.Add('连接成功!')
else
Memo1.Lines.Add('连接失败!');
end;
总是返回连接失败,有一个奇怪的现象,就是我第二次点击按钮时,已经连接成功!
NTService关闭出错?请大家帮忙
你如果是超级管理员用户身份,用户名和密码可以默认为空,不用设置
{
SMSStop;
Stopped := true;
}
是地址错误吗?