indy10中关于idTCPServer和idTCPClient的2个问题,会者进来帮一下忙。(100分)

  • 主题发起人 主题发起人 ww990
  • 开始时间 开始时间
W

ww990

Unregistered / Unconfirmed
GUEST, unregistred user!
1、indy10控件中idTCPServer超过最大连接数MaxConnects后,返回的错误信息是有哪个函数定义的?
2、idTCPServer停止后或异常关闭后idTCPClient如何判断出idTCPServer已经停止服务了。
最好能示例。
 
2、idTCPServer停止后或异常关闭后idTCPClient如何判断出idTCPServer已经停止服务了。
不断发送小数据量的消息,我只能想到这个办法。。
 
路过,学习一下...
 
路过,学习一下...
 
对于问题2,能不能尝试和idTCPServer接收端口进行连接,然后出现错误,则可判断。
...//初始化idtcpclient
try
idtcpclient.connect;
except
//连接失败
end;
 
2、我用的是Delphi7自带的idTCPServer和idTCPClient他们都有一个onDisconnect
 
to:huzhicheng
这个方法试过,服务端启动后,再异常退出,好像不行。
 
我用的indy 10的,其中UDPClient.SendBuffer()这个函数不会用呀,请哪位大虾指导一下,谢谢了
 
我没用过indy 10 我用的是indy9,客户端做一个接收线程,一个时间线程,一个timer计数器,每隔1分种向服务端发一个心跳包,同时开启timer计数器,客户端接收线程收到返回的心跳数据就并闭timer计数器,如timer计数到10次左右时,就可认为客户端已与服务端断开了,可idTCPClient.disconnect!
服务端的心跳包也可这样做
 
第二个问题,心跳包.第一个不知道
 
to ysfy:能不放个indy9的示例代码?
 
不会接分来的
 
procedure TRecThread.Execute;//客户端接收线程
begin
while not Terminated do
begin
CourtForm.IdTCPClient1.ReadBuffer(CB,Sizeof(CB));
if CB.StrKind='#LOGIN' then //***1***
begin
end
else CB.StrKind='#DIALOAGE'
begin
end
else CB.StrKind='#TEST' then//收到服务端转发的数据包
begin
TestTimeOut:=0;
EchoSuccess:=true;//成功echo
MainForm.Timer1.Enabled:=false;//关闭计数器
end
end;
...................................
procedure TMainForm.Timer1Timer(Sender: TObject);//计数器,间隔1秒
begin
TestTimeOut:=TestTimeOut+1;
if TestTimeOut>30 then idTCPClient1.Disconnect;//30秒过后还没有读到数据就断开
end;
...........................
procedure TMonitorThread.Execute;//监控线程,每二分钟发一个包给服务端
begin
present:=now;
DecodeTime(Present,Hour,Min,Sec,MSec);
if ((Min mod 5)=0) and(not SendSignal) and (not EchoSuccess) then
begin
if (MainForm.ClientStatus=0)
and(MainForm.IdTCPClient1.Connected) then
begin
TestCB.StrKind:='#TEST';
TestCB.Msg:=CourtForm.CourtOP.LCourt;
try
SendSignal:=true;//发送信号
MainForm.IdTCPClient1.WriteBuffer(TestCB,sizeof(TestCB),true);
TestTimeOut:=0; //开始计数
MainForm.Timer1.Enabled:=true;//开启时钟
.............................................
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部