C++ 网络编程 [关闭]

问题描述 投票:0回答:6

我想扩展我在C++方面的知识,所以我要做的第一件事就是网络编程。

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

编辑:

忘了说我用的是ubuntu,所以windows方式不行

c++ sockets network-programming irc bots
6个回答
18
投票

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

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

在你坐下来写一行套接字代码之前,你绝对必须有这本书。不要没有它就离开家。真的。在 Amazon 使用 35 美元左右起。

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

W. 理查德史蒂文斯, UNIX 网络编程,第 2 卷: 进程间通信(第二 版)
W. 理查德史蒂文斯, TCP/IP 图解,卷。 1: 协议

它们具有史蒂文斯一贯和预期的卓越品质。我不知道他整合所有这些书的计划是什么,


11
投票

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


5
投票

我的建议:

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

  2. 了解低级别的套接字和网络。对于 Unix,我想看看 Unix Network Programming。

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


4
投票

学习C/C++ 套接字编程的最佳指南必须是Beej 的网络编程指南。它涵盖了您需要了解的所有步骤,包括示例和详细说明。据我所知,该站点唯一缺少的信息是 IPv6 多播。


4
投票

从一个简单的客户端-服务器示例开始。使用 Qt 框架非常容易。例如:

服务器.cpp:

#include <QTcpSocket>
#include <QTcpServer>

int main()
{
    QTcpServer *tcpServer = new QTcpServer(); //creates TCP-based server
    tcpServer->listen(QHostAddress("172.16.254.1"),5300); //listen on your IP adress, port 5300
    while ( tcpServer->isListening() )  //while server is listening
    {   
        QTcpSocket* tcpSocket; //define TCP-based socket
        tcpServer->waitForNewConnection(); //server waits for connection
        if ( (tcpSocket = tcpServer->nextPendingConnection()) ) //if there are connections to be processsed 
        { 
                tcpSocket->write("hello",6); //write "hello" to the socket, client is connected to
                tcpSocket->flush();    
        }
    }
}

client.cpp:

#include <QDebug>
#include <QTcpSocket>

int main()
{
    QTcpSocket *tcpSocket = new QTcpSocket(); //create TCP-based socket
    tcpSocket->connectToHost("172.16.254.1",5300); //connect socket to server
    tcpSocket->waitForConnected(); //wait 
    tcpSocket->waitForReadyRead(); 
    qDebug() << tcpSocket->readAll();    
}

您需要做的就是在一个终端窗口中运行第一个程序,然后在另一个窗口中运行第二个程序。

你会发现更多的Qt网络例子在这里


-1
投票

我知道这本书很旧有本书叫

《Beej 使用 Internet Socket 进行网络编程指南》

Beej 提供的一切都是 100% 免费访问这里是学习网络编程基础知识的网站。

https://beej.us/guide/bgnet/

我仍然推荐这里提供的书籍,因为它们提供了有关套接字和 TCP/IP 协议的非常可靠的信息。

  • Unix 网络编程:套接字网络 Api Unix 网络编程:套接字网络 Api - 作者 W. Richard Stevens

  • TCP/IP 图解,卷。 1:协议(Addison-Wesley 专业计算系列)TCP/IP Illustrated,Vol. 1:W. Richard Stevens 的协议(Addison-Wesley 专业计算系列)

  • UNIX 网络编程,第 2 卷:进程间通信,第二版UNIX 网络编程,第 2 卷:进程间通信,第二版,作者:W. Richard Stevens

  • TCP/IP 图解,第 1 卷:协议(Addison-Wesley 专业计算系列)第 2 版 作者:Kevin Fall(作者),W. Stevens(作者)

  • TCP/IP 指南:全面、图解的 Internet 协议参考第 1 版 通过 Charles M. Kozierok


我不是网络程序员或软件开发人员,我唯一的兴趣是虚幻引擎的网络和复制,仅用于游戏开发。请不要向我发送 PM 或询问有关网络的问题。

© www.soinside.com 2019 - 2024. All rights reserved.