IRC协议相关

我对IRC协议非常熟悉,正在用bcb6写一个客户端,据我分析你的状态如下: 你连不上服务器?IRC连接服务器时是这样操作的,首先你通过socket与server建产连接,在onconnect成功时,这个时候,你必须遵照IRC的协议,主动向server发送下列必不可少的两条信息来注册你的这个连接: 1,NICK 2,USER 如果这两条命令发送成功,服务器就接爱你的连接,服务器(并不是所有的)就会向你发送一条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捕捉到,这个问题至今没有解决,想了很多办法都没有解决掉。 这些希望对你的工程有所帮助。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值