C のネットワーク データ送信関数には、サーバー側でデータを送受信するために使用される、recv() および send() が含まれます。以下の手順は、recv() と send() を使用してエコー サーバーを作成するプロセスを示しています。 1. ソケットを作成します。 2. サーバー アドレス情報を設定します。 3. ソケットをサーバー アドレスにバインドします。 ; 5. 接続を受け入れ、データを受信し、ループでクライアントに送り返します。 6. 接続とソケットを閉じます。
#ネットワーク データ送信に C 関数を使用する
ネットワーク プログラミングでは、データの送信は重要な操作です。 C はこの目的のために強力な機能を提供し、開発者がデータ転送を簡単かつ効率的に処理できるようにします。サーバー側: データの受信と送信
サーバー側では、recv() 関数を使用してクライアントからデータを受信できます。 。この関数のプロトタイプは次のとおりです:
int recv(int sockfd, void *buf, size_t len, int flags);
: データを読み取るためのソケット記述子。
: 受信したデータを格納するバッファ。
: 受信する最大バイト数。
: 受信動作を制御するフラグ。
send() 関数を使用できます。
int send(int sockfd, const void *buf, size_t len, int flags);
recv() と似ています。 ### 関数 。
次は、C:
#include <iostream> #include <stdlib.h> #include <sys/socket.h> // 套接字支持 #include <netinet/in.h> // 互联网地址结构支持 using namespace std; int main() { // 创建套接字 int server_sockfd = socket(AF_INET, SOCK_STREAM, 0); if (server_sockfd < 0) { cerr << "错误:无法创建套接字!" << endl; return -1; } // 设置服务器地址信息 sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_port = htons(8080); // 将端口号转换为网络字节序 server_addr.sin_addr.s_addr = INADDR_ANY; // 接受任何 IP 地址的连接 // 绑定套接字到服务器地址 if (bind(server_sockfd, (struct sockaddr *) &server_addr, sizeof(server_addr)) < 0) { cerr << "错误:绑定套接字失败!" << endl; return -1; } // 监听连接 if (listen(server_sockfd, 5) < 0) { cerr << "错误:监听连接失败!" << endl; return -1; } while (true) { // 接受连接 sockaddr_in client_addr; socklen_t client_addr_len = sizeof(client_addr); int client_sockfd = accept(server_sockfd, (struct sockaddr *) &client_addr, &client_addr_len); if (client_sockfd < 0) { cerr << "错误:接受连接失败!" << endl; continue; } // 接收和发送数据 char buffer[1024]; // 用于存储数据的缓冲区 int n; while ((n = recv(client_sockfd, buffer, sizeof(buffer), 0)) > 0) { // 发送回客户端 int m = send(client_sockfd, buffer, n, 0); if (m < 0) { cerr << "错误:发送数据失败!" << endl; break; } } // 关闭连接 close(client_sockfd); } // 关闭套接字 close(server_sockfd); return 0; }
を使用してエコー サーバーを実装するためのサンプル コードです。
recv() 関数と send()
関数は、クライアントからデータを受信し、それをそのままクライアントに送り返すために使用されます。
以上がC++ 関数はネットワーク プログラミングでデータ送信をどのように実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。