谁能给说说IRC协议?

stayhere 2003-11-29 12:14:28
最近在网上找IRC协议的解析,但偶英文不好,有个客户端演示则是VC的,蒙蒙懂懂.
但自己写的就是连不上服务器,想请教哪位高手指点迷津:如何用C++builder写一个简单的IRC客户端?
...全文
518 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
iuIRCClient 2003-12-04
  • 打赏
  • 举报
回复
我对IRC协议非常熟悉,正在用bcb6写一个客户端,据我分析你的状态如下:
你连不上服务器?IRC连接服务器时是这样操作的,首先你通过socket与server建产连接,在onconnect成功时,这个时候,你必须遵照IRC的协议,主动向server发送下列必不可少的两条信息来注册你的这个连接:
1,NICK <nickname>
2,USER <username> <hostname> <servername> <realname>
如果这两条命令发送成功,服务器就接爱你的连接,服务器(并不是所有的)就会向你发送一条PING <ping串>消息,你在收到这个消息后,必须原封不动的将ping串内容做为PONG命令的参数再发回给服务器,表示你的连接是活动的。
然后,服务器就向你发送所有正常的消息,你只需要对所有的消息进行解析就可以了。

当然,要做一个IRC客户端,是需要吃透RFC1459协议的,工作最多的就是对各种不同的返回消息进行解析。

目前我的客户端已完成80%,但在写作的过程中,我有如下体会,到目前为止,我还不知道这是bcb6的缺陷还是bug:
1,服务器所有返回信息,应该都是以\r\n结尾的,就算是服务器将多条信息连在一起发送过来,也应该是以\r\n结束,我以前用vb和socket空件写IRC的时候,所有消息全是以\r\n结束的,这很好去分析。但在bcb的clientsocket空件里,它会自作聪明的对稍长一些的消息进行断行,分次发送过来,这样给消息的解析造成一些麻烦及难以处理的情况。
2,因为频道窗口,私聊窗口都需要动态创建,我的程序在运行一段时间(如10分钟)后,就可能会出一种EOutOfResource错误,并且,这种错误不能被try...catch捕捉到,这个问题至今没有解决,想了很多办法都没有解决掉。

这些希望对你的工程有所帮助。
warton 2003-12-03
  • 打赏
  • 举报
回复
我用的是indy9,在indy clients页有idirc控件
stayhere 2003-12-02
  • 打赏
  • 举报
回复
to pazee(耙子):
找不到IdIRCClient,只有IdIRCServer.难道我的和大家的不一样?我也是BCB6啊.
stayhere 2003-12-02
  • 打赏
  • 举报
回复
谢谢各位,这就找去....
耙子 2003-11-29
  • 打赏
  • 举报
回复
Indy 空间提供了一个简单的demo,使用了自带的控件。
叶子哟 2003-11-29
  • 打赏
  • 举报
回复
你上www.vckbase.com,www.vccode.com,www.codeguru.com上找找,一般的vc的多
warton 2003-11-29
  • 打赏
  • 举报
回复
觉得还是看英文好吧,rfc的文档还是比较好懂的。

早些年有不少IRC的应用,源代码也很多,找来参考一下吧!

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧