delphi indy阻塞问题,请教!
我用indy里的idtcpclientidtcpserver组件作通信程序,网上查了一大堆资料,说阴塞只是阻塞时只是阴塞监听进程而不阻塞主进程,于是我作了下试验:在FOR...
我用indy 里的idtcpclient idtcpserver组件作通信程序,网上查了一大堆资料,说阴塞只是阻塞时只是阴塞监听进程而不阻塞主进程,于是我作了下试验:
在FORM1上添加IDTCPCLIENT控件和一个按钮,IDTCPCLIENT的端口什么的设置我们就不说了,单说这个按钮,我在里面添加了如下代码procedure TForm1.btn2Click(Sender: TObject);
begin
cmd := idtcpclnt1.ReadLn;
ShowMessage(cmd);
end;
照我的理解,只是阻塞监听进程的话,当服务端那边还没有writeln过来的时候,这时候client的监听进程是处于阴塞状态的,但下面的ShowMessage(cmd);这一句应该照常执行才对,但为什么实际情况却是当我按下接钮时毫无反映,一定要待服务端那边writeln过来时,才会触发下面的showmessage? 请教! 展开
在FORM1上添加IDTCPCLIENT控件和一个按钮,IDTCPCLIENT的端口什么的设置我们就不说了,单说这个按钮,我在里面添加了如下代码procedure TForm1.btn2Click(Sender: TObject);
begin
cmd := idtcpclnt1.ReadLn;
ShowMessage(cmd);
end;
照我的理解,只是阻塞监听进程的话,当服务端那边还没有writeln过来的时候,这时候client的监听进程是处于阴塞状态的,但下面的ShowMessage(cmd);这一句应该照常执行才对,但为什么实际情况却是当我按下接钮时毫无反映,一定要待服务端那边writeln过来时,才会触发下面的showmessage? 请教! 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询