首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi Indy IRC

Delphi Indy IRC
EN

Stack Overflow用户
提问于 2013-06-28 18:27:09
回答 1查看 636关注 0票数 0

Delphi版本: XE2,Indy版本: 10.5.8.0。我有三个程序,所有的工作都很好,直到失去网络连接。当它将发生之后,我会尝试发送消息,然后我不能重新连接,当互联网将回来。无法关闭程序(关闭程序后不可见,但将使用100 cpu使用率)。在没有"try,exception“的情况下,IdIRC1.Say和on Close上有一个Socket Error #1053。谢谢你的帮助。

代码语言:javascript
复制
///Connection:

    procedure TForm1.Button5Click(Sender : TObject);
    begin
      try
        IdIRC1.Nickname := 'zzz';
        IdIRC1.Password := 'kkk';
        if IdIRC1.Connected then
          IdIRC1.Disconnect;
        IdIRC1.Connect;
        IdIRC1.Join('#' + edit3.Text);
      except
        ShowMessage('ggg');
      end;
    end;

///Send message:

procedure TForm1.Button3Click(Sender : TObject);
begin
 try
    IdIRC1.Say('#' + edit3.Text, edit2.Text);
    if (edit2.Text <> '') and (IdIRC1.Connected) then
    begin
      memo6.Lines.Add(edit2.Text);
      Edit2.Clear;
    end
    else
      ShowMessage('xxx');
 except
    ShowMessage('yyy');
 end;
end;



///On close:
  try
    IdIRC1.Disconnect;
  except
  end;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-29 04:48:51

当您在访问连接时遇到错误时,例如由于连接丢失,您需要调用Disconnect() ,如果IOHandler.InputBuffer中仍有未读数据,则需要清除它。根据设计,Disconnect()不会清除InputBuffer。如果InputBuffer不为空,则即使物理套接字断开连接,Connected()也将返回True。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17362597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档