C++ byte数组如何参与网络通信

   2024-10-06 8470
核心提示:在C++中,可以使用标准库中的socket库来进行网络通信。首先需要创建一个socket对象,并设置其类型和地址族。然后通过socket对象

在C++中,可以使用标准库中的socket库来进行网络通信。首先需要创建一个socket对象,并设置其类型和地址族。然后通过socket对象的send()和recv()方法来发送和接收数据。

如果要发送和接收字节数组,可以将字节数组的指针和长度作为send()和recv()方法的参数传入。例如:

#include <iostream>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>int main() {    int sockfd = socket(AF_INET, SOCK_STREAM, 0);    if (sockfd < 0) {        std::cerr << "Error creating socket" << std::endl;        return -1;    }    struct sockaddr_in server_addr;    server_addr.sin_family = AF_INET;    server_addr.sin_port = htons(8080);    server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");    if (connect(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) {        std::cerr << "Error connecting to server" << std::endl;        return -1;    }    // Sending data    char buffer[1024];    // Fill buffer with data    // ...    if (send(sockfd, buffer, sizeof(buffer), 0) < 0) {        std::cerr << "Error sending data" << std::endl;    }    // Receiving data    char recv_buffer[1024];    int recv_len = recv(sockfd, recv_buffer, sizeof(recv_buffer), 0);    if (recv_len < 0) {        std::cerr << "Error receiving data" << std::endl;    } else {        // Process received data        // ...    }    close(sockfd);        return 0;}

在这个例子中,我们创建了一个socket连接到指定的IP地址和端口,并使用send()方法发送字节数据,并使用recv()方法接收字节数据。发送和接收的数据都是以字节数组的形式进行的。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号