Pustaka standard C++ menyediakan fungsi berikut untuk mengendalikan protokol rangkaian: socket(): Buat deskriptor soket rangkaian baharu. connect(): Sambungkan soket ke alamat jauh dan port. send()/recv(): Hantar atau terima paket data. listen(): Mendengar sambungan masuk pada port yang ditentukan. accept(): Menerima sambungan masuk dan mencipta deskriptor soket baharu.
Protokol rangkaian ialah satu set peraturan dan konvensyen yang mengawal cara komputer berkomunikasi pada rangkaian. Bahasa C++ menyediakan fungsi yang kaya untuk membangunkan aplikasi rangkaian, termasuk fungsi terbina dalam untuk bekerja dengan protokol rangkaian.
Pustaka standard C++ menyediakan fungsi berikut untuk mengendalikan protokol rangkaian:
socket()
: 创建新的网络套接字描述符。connect()
: 将套接字连接到远程地址和端口。send()
/recv()
: 发送或接收数据包。listen()
: 在指定端口上侦听传入连接。accept()
connect()
: Sambungkan soket ke alamat jauh dan port. recv()
: Hantar atau terima paket data. listen()
: Dengar sambungan masuk pada port yang ditentukan.
accept()
: Menerima sambungan masuk dan mencipta deskriptor soket baharu.
// 客户端代码 #include <iostream> #include <netdb.h> #include <sys/socket.h> int main() { struct sockaddr_in server_addr; memset(&server_addr, 0, sizeof(server_addr)); // 获取服务器的地址和端口号 char *host = "127.0.0.1"; int port = 8080; // 创建套接字 int sock = socket(AF_INET, SOCK_STREAM, 0); // 设置服务器地址 server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr(host); server_addr.sin_port = htons(port); // 连接到服务器 connect(sock, (struct sockaddr *) &server_addr, sizeof(server_addr)); // 发送数据到服务器 std::string message = "Hello from client!"; send(sock, message.c_str(), message.length(), 0); // 接收服务器的响应 char buffer[1024]; memset(buffer, 0, sizeof(buffer)); recv(sock, buffer, sizeof(buffer), 0); // 输出服务器响应 std::cout << "Received from server: " << buffer << std::endl; return 0; } // 服务器代码 #include <iostream> #include <netdb.h> #include <sys/socket.h> #include <unistd.h> int main() { struct sockaddr_in server_addr; memset(&server_addr, 0, sizeof(server_addr)); // 设置服务器的地址和端口号 char *host = "127.0.0.1"; int port = 8080; // 创建套接字 int sock = socket(AF_INET, SOCK_STREAM, 0); // 设置服务器地址 server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr(host); server_addr.sin_port = htons(port); // 绑定套接字到服务器地址 bind(sock, (struct sockaddr *) &server_addr, sizeof(server_addr)); // 开始侦听传入连接 listen(sock, 5); while (true) { struct sockaddr_in client_addr; memset(&client_addr, 0, sizeof(client_addr)); socklen_t client_addr_len = sizeof(client_addr); // 接受传入连接 int client_sock = accept(sock, (struct sockaddr *) &client_addr, &client_addr_len); // 从客户端接收数据 char buffer[1024]; memset(buffer, 0, sizeof(buffer)); recv(client_sock, buffer, sizeof(buffer), 0); // 发送响应到客户端 std::string message = "Hello from server!"; send(client_sock, message.c_str(), message.length(), 0); // 关闭客户端套接字 close(client_sock); } return 0; }
Atas ialah kandungan terperinci Bagaimanakah fungsi C++ mengendalikan protokol rangkaian dalam pengaturcaraan rangkaian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!