码界工坊

htykm.cn
人生若只如初见

新开暗黑版本传奇私服

新开暗黑版本传奇私服_新开暗黑版本传奇私服合击_haosf123传奇发布网

在CentOS上进行C++网络编程,通常会使用套接字(socket)API。以下是一个简单的TCP服务器和客户端的示例,展示了如何在CentOS上使用C++进行网络编程。

1. 安装必要的开发工具

首先,确保你已经安装了gccmake等开发工具。如果没有安装,可以使用以下命令进行安装:

sudo yum groupinstall "Development Tools"

2. 编写TCP服务器代码

创建一个名为tcp_server.cpp的文件,并添加以下代码:

#include #include #include #include #include #define PORT 8080int main() {     int server_fd, new_socket;    struct sockaddr_in address;    int opt = 1;    int addrlen = sizeof(address);    char buffer[1024] = { 0};    const char* hello = "Hello from server";    // Creating socket file descriptor    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {         perror("socket failed");        exit(EXIT_FAILURE);    }    // Forcefully attaching socket to the port 8080    if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) {         perror("setsockopt");        exit(EXIT_FAILURE);    }    address.sin_family = AF_INET;    address.sin_addr.s_addr = INADDR_ANY;    address.sin_port = htons(PORT);    // Forcefully attaching socket to the port 8080    if (bind(server_fd, (struct sockaddr*)&address, sizeof(address)) < 0) {         perror("bind failed");        exit(EXIT_FAILURE);    }    if (listen(server_fd, 3) < 0) {         perror("listen");        exit(EXIT_FAILURE);    }    if ((new_socket = accept(server_fd, (struct sockaddr*)&address, (socklen_t*)&addrlen)) < 0) {         perror("accept");        exit(EXIT_FAILURE);    }    read(new_socket, buffer, 1024);    std::cout << buffer << std::endl;    send(new_socket, hello, strlen(hello), 0);    std::cout << "Hello message sent\n";    close(new_socket);    close(server_fd);    return 0;}

3. 编写TCP客户端代码

创建一个名为tcp_client.cpp的文件,并添加以下代码:

#include #include #include #include #include #define PORT 8080int main() {     struct sockaddr_in serv_addr;    int sock = 0;    const char* hello = "Hello from client";    char buffer[1024] = { 0};    if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {         std::cout << "\n Socket creation error \n";        return -1;    }    serv_addr.sin_family = AF_INET;    serv_addr.sin_port = htons(PORT);    // Convert IPv4 and IPv6 addresses from text to binary form    if(inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr) <= 0) {         std::cout << "\nInvalid address/ Address not supported \n";        return -1;    }    if (connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {         std::cout << "\nConnection Failed \n";        return -1;    }    send(sock, hello, strlen(hello), 0);    std::cout << "Hello message sent\n";    read(sock, buffer, 1024);    std::cout << "Server: " << buffer << std::endl;    close(sock);    return 0;}

4. 编译代码

使用g++编译服务器和客户端代码:

g++ -o tcp_server tcp_server.cppg++ -o tcp_client tcp_client.cpp

5. 运行服务器和客户端

首先,在一个终端中运行服务器:

./tcp_server

然后,在另一个终端中运行客户端:

./tcp_client

你应该会看到服务器和客户端之间的通信输出。

6. 调试和优化

根据需要,你可以添加更多的错误处理、日志记录和功能来优化你的网络应用程序。

通过以上步骤,你可以在CentOS上使用C++进行基本的网络编程。

未经允许不得转载 » 本文链接:http://htykm.cn/hao/773f7099156.html

推荐文章

  • 如何在Ubuntu中集成Swagger

    在Ubuntu中集成Swagger现在通常称为OpenAPI)通常涉及以下几个步骤:安装Swagger工具:你可以使用npmNode.js的包管理器)来安装Swagger命令行工具。首先,确保你已经安 ...

  • 小米成立AIoT战略委员会 5年100亿All in AIoT落地加速

    2019年3月7日,小米集团组织部再次发布任命文件,宣布成立 AIoT 战略委员会。AIoT 战略委员会隶属于集团技术委员会,负责促进 AIoT 相关业务和技术部门的协同,推动战略落地执行。文件显示, ...

  • 威瑞信将以拍卖方式开放注册单字符域名O.com!

    单字符域名是各后缀中最稀有的品种,一般被买家收购后很久才会再进入交易市场流通。在几次.xyz域名拍卖会上,几个单数字域名都拍出高价,并不断刷新纪录,1.xyz就曾以118万元的价格成交,成为公开交易中 ...

  • Debian系统如何更新lsnrctl版本

    在Debian系统中更新lsnrctl通常与Oracle数据库相关)的版本,可以按照以下步骤进行:方法一:使用APT包管理器更新APT包列表打开终端并运行以下命令来更新APT包列表:sudo apt ...

  • Ubuntu Apache怎样实现URL重写

    在Ubuntu上使用Apache实现URL重写,通常需要使用mod_rewrite模块。以下是详细的步骤:1. 启用mod_rewrite模块首先,确保mod_rewrite模块已经启用。你可以通过以 ...

  • 腾讯QQ将上线注销功能,你会注销吗

    QQ可以说是承载了很多80/90后的青春回忆,随着互联网的发展,越来越多的社交软件上线,QQ逐渐被冷落。据悉腾讯QQ将上线注销功能,你会注销吗?有网友发现,在腾讯客服微信公众号中回复“QQ软件注销”, ...

  • centos sftp如何实现文件共享

    在CentOS上使用SFTPSSH File Transfer Protocol)实现文件共享,通常涉及以下几个步骤:安装OpenSSH服务器:CentOS系统默认已经安装了OpenSSH服务器。如果 ...

  • Linux反汇编指令有哪些学习资源

    学习Linux反汇编指令的资源有很多,以下是一些建议的学习资源:在线教程与课程《Linux程序设计》作者:Neil Matthew 和 Richard Stones)虽然不是专门讲反汇编的,但提供了很 ...