C++网络编程

Loc*_*ead 12 c++ sockets irc network-programming bots

嘿,我想扩展我的C++知识,所以我要做的第一件事是网络编程.

我想制作一个IRC机器人(希望能教会我关于套接字编程和网络主题),但我不知道从哪里开始.如果有人能够向我解释IRC机器人如何工作以及如何制作它们,并指导我学习一些资源,那将非常棒.简单的片段也很棒......

谢谢!

编辑:

忘了提我用ubuntu,所以windows方式不是一个选择

Pet*_*son 13

要理解套接字并正确使用它们,您需要套接字圣经:

W. Richard Stevens,Unix网络编程,第1卷:套接字网络API(第3版)

在坐下来写一行套接字代码之前,你绝对必须拥有这本书.没有它就不要离开家.真.在亚马逊上使用约35美元.

编辑: OP询问其他卷.这是另外两个:

  W. Richard Stevens, UNIX网络编程,第2卷:进程间通信(第2版)
  W.Richard Stevens, TCP/IP Illustrated,Vol.1:协议

他们是史蒂文斯的平常和期待的高品质.我不知道他整合所有这些书的计划是什么,


ild*_*arn 8

提升.asio(在我看来)是在现代C++中编写平台独立网络代码的事实标准.

  • 您是否认为使用 boost.asio 无需学习套接字 API?或者我们应该建议一个人先写传统的socket程序,然后再转用boost.asio? (2认同)
  • @Rob Adams:就像我认为应该在原始指针/C 数组和 C 字符串之前学习 `std::vector<>` 和 `std::string` 一样,我认为应该先编写 boost.asio 程序然后之后学习传统套接字。 (2认同)

sle*_*ica 5

我的建议:

  1. 我首先用编写速度快、功能强大的高级语言(例如 Python)编写机器人。习惯于使用网络工具、IRC 协议和其他东西。

  2. 在底层了解套接字和网络。对于 Unix,我会说看看 Unix Network Programming。

  3. 用 C++ 编写你的机器人!犯错误,改正错误,并坚持下去。


efr*_*r4k 5

到目前为止,学习 C/C++ 套接字编程的最佳指南一定是Beej 的《网络编程指南》 。它通过示例和详细说明完成了您需要了解的所有步骤。据我所知,该站点唯一缺乏的信息是 IPv6 多播。