【发布时间】:2013-01-19 00:13:57
【问题描述】:
我希望用 C 编写一个 IRC 客户端,问题是我有点 IRC 菜鸟,我不知道 IRC 服务器如何接受连接。
我的英语不太好,谁能给我看一些 IRC 连接的伪代码?
【问题讨论】:
-
一些对你来说不太有趣的阅读:tools.ietf.org/html/rfc2812
-
谢谢,现在就去看看。
我希望用 C 编写一个 IRC 客户端,问题是我有点 IRC 菜鸟,我不知道 IRC 服务器如何接受连接。
我的英语不太好,谁能给我看一些 IRC 连接的伪代码?
【问题讨论】:
这是一个基于线路的 TCP 协议。只需发送如下内容:
NICK MyNickname
USER MyUser 1 1 1 :I am awesome
除此之外,只需使用相应的PONG 回复PING。示例:
$ telnet irc.freenode.net 6667
:morgan.freenode.net 注意 * : 查找您的主机名...
:morgan.freenode.net 通知 * : 检查身份
:morgan.freenode.net 通知 * : 没有 Ident 响应
:morgan.freenode.net NOTICE * : 找到你的主机名
我发送了:
尼克我的昵称
USER MyUser 1 1 1 : 我很棒
我明白了:
:morgan.freenode.net 001 MyNickname :欢迎来到freenode Internet Relay Chat Network MyNickname
该协议记录在RFC1459 中。自 RFC 发布以来最大的变化是昵称现在可以更长,通常最多 30 个字符。
【讨论】:
PING 并回复它,这意味着您没有欺骗您的源地址。现代操作系统不使用可预测的初始序列号,因此不再需要。但它仍然存在。