【问题标题】:Connecting to IRC [closed]连接到 IRC [关闭]
【发布时间】:2013-01-19 00:13:57
【问题描述】:

我希望用 C 编写一个 IRC 客户端,问题是我有点 IRC 菜鸟,我不知道 IRC 服务器如何接受连接。

我的英语不太好,谁能给我看一些 IRC 连接的伪代码?

【问题讨论】:

标签: c sockets irc


【解决方案1】:

这是一个基于线路的 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 个字符。

【讨论】:

  • 完全忘记了 telnet。 IRC 似乎比我想象的要简单得多。感谢您的宝贵时间。
  • 如果您不使用 PONG : 回复来响应 PING : 请求,许多服务器将无法完成您的注册。过去我对此感到困惑,不知道为什么我的注册不会进行。
  • @Troy:很久以前,这是防止欺骗性 SYN 攻击所必需的。如果您可以收到PING 并回复它,这意味着您没有欺骗您的源地址。现代操作系统不使用可预测的初始序列号,因此不再需要。但它仍然存在。
  • 一些服务器也不会让你登录,除非你的客户端正在运行一个 IDENTD 服务器,IRC 服务器可以查询该服务器以验证你是你所说的那个人,而不是欺骗连接的人。
  • @RemyLebeau:是的。这是大多数系统都是多用户时的遗留物。你再也找不到那么多了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
  • 2019-07-27
  • 2010-12-12
  • 1970-01-01
相关资源
最近更新 更多