小弟用TidUDPServer向一个网络设备发出一段命令后,
但是不知道网络是否连接良好,(如果连接良好,设备会有返回命令!!)
现在,我想写一个东西来判断在一定的时间(如 5秒)内是否有数据返回,
(也就是在这段时间内不断的扫描一个端口,检查是否有数据。)
如果没有,则打印“连接超时!!”,
请问这样的函数该如何写,最好用API函数,
但是不知道网络是否连接良好,(如果连接良好,设备会有返回命令!!)
现在,我想写一个东西来判断在一定的时间(如 5秒)内是否有数据返回,
(也就是在这段时间内不断的扫描一个端口,检查是否有数据。)
如果没有,则打印“连接超时!!”,
请问这样的函数该如何写,最好用API函数,
AData: TStream; ABinding: TIdSocketHandle);
var
sErr : string;
begin
StreamToBytes(AData,ArrRet); if(GetErrorCode(ArrRet)<>0)then
begin
sErr := IntToStr(GetCmdType(ArrRet))+':'+IntToStr(GetErrorCode(ArrRet));
Mm_Msg.Lines.Add('Any error was occured! '+sErr);
end;
case GetCmdType(ArrRet) of
5:begin
UDPSendCommand(UDPServer,lvDevice.Selected.SubItems.Strings[5],
StrToInt(lvDevice.Selected.SubItems.Strings[6]),
UDP_CheckAdmin(DevID,SerialNo,sAdminCode),sErr);
///--------------------------------------(1)
Mm_Msg.Lines.Add('Connect Device Success!');
end;
6:begin
Mm_Msg.Lines.Add('Disconnect Device Success!');
exit;
end;
7:begin
UDPSendCommand(UDPServer,lvDevice.Selected.SubItems.Strings[5],
StrToInt(lvDevice.Selected.SubItems.Strings[6]),
UDP_DisConnect(DevID,SerialNo),sErr);
///--------------------------------------(2)
Mm_Msg.Lines.Add('Check AdminCode Success!');
end;
end;
end;
我是这样做的,
在接受返回数据的事件里也做发命令,
俺现在想在1、2 处加判断超时语句,
你刚才说的意思我懂,但是,最关键的没有说出来,那就是如何监听桓龆丝谟忻挥惺莘祷兀浚浚浚。。?
分少可以加,麻烦大家了,
多谢