我一直在努力处理谷歌的废话文件,即使它连接到服务器也无法加入该频道。 (它说连接到服务器)
//On Form Make
procedure TForm2.FormCreate(Sender: TObject);
begin
IdIRC1.Connect();
end;
//on connected
procedure TForm2.IdIRC1Connected(Sender: TObject);
begin
ShowMessage('Connected to server');
IdIRC1.Join('#TheChannel', 'password');
end;
一旦我关闭表单,就会出现错误:
Project raised exception class EIdException with message 'Not Connected'
一旦连接,我用什么功能来通道/检查输入?还有哪些其他IRC连接选项(组件)适用于Delphi应用程序?
任何帮助都会受到赞赏,谷歌没有这个真的没有。我想要的就是能够连接/查看频道聊天消息并聊聊聊天;通过IRC的简单字符串IO ...
猜猜你没有满足所有的服务器要求。只是IdRac.Connect是不够的,这对我有用:
FIRC.Host:= 'irc.freenode.org';
FIRC.Port := 6667;
FIRC.Username:= 'SapoIndy';
FIRC.Nickname:= 'SapoIndy';
FIRC.RealName:= 'Fabio Gomes';
FIRC.Connect;
FIRC.Join('#TheChannel');
要弄清楚发生了什么,你需要得到一些事件的输出,我已经实现了这些:
FIRC.OnStatus:= @Status;
FIRC.OnNotice:= @Notice;
FIRC.OnMOTD:= @MOTD;
获取一些事件,你应该弄清楚服务器告诉你什么,不要试错。
关于发送和接收消息,我前段时间实现了一些,这是项目,它是使用Lazarus制作的。
https://bitbucket.org/fabioxgn/irc/src/b510d73e553d/main.pas
不要在Join()
事件中调用OnConnected
。该事件只是意味着建立了底层套接字连接。 Connect()
仍在运行,并且在触发OnConnected
事件时尚未实际登录到IRC服务器。等到Connect()
退出之后再发出任何命令:
procedure TForm2.FormCreate(Sender: TObject);
begin
IdIRC1.Connect;
ShowMessage('Connected to server');
IdIRC1.Join('#TheChannel', 'password');
end;