以下是一个简单的C++服务器的示例代码:

#include <iostream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>

int main() {
    // 创建socket
    int serverSocket = socket(AF_INET, SOCK_STREAM, 0);
    if (serverSocket == -1) {
        std::cerr << "Failed to create socket" << std::endl;
        return -1;
    }

    // 设置服务器地址和端口
    sockaddr_in serverAddress{};
    serverAddress.sin_family = AF_INET;
    serverAddress.sin_addr.s_addr = INADDR_ANY;
    serverAddress.sin_port = htons(8888);  // 使用8888端口

    // 绑定socket到指定地址和端口
    if (bind(serverSocket, (struct sockaddr *)&serverAddress, sizeof(serverAddress)) == -1) {
        std::cerr << "Failed to bind socket" << std::endl;
        return -1;
    }

    // 监听连接
    if (listen(serverSocket, 10) == -1) {
        std::cerr << "Failed to listen on socket" << std::endl;
        return -1;
    }

    std::cout << "Server started, listening on port 8888" << std::endl;

    while (true) {
        // 接受新的连接
        sockaddr_in clientAddress{};
        socklen_t clientAddressLength = sizeof(clientAddress);
        int clientSocket = accept(serverSocket, (struct sockaddr *)&clientAddress, &clientAddressLength);
        if (clientSocket == -1) {
            std::cerr << "Failed to accept connection" << std::endl;
            continue;
        }

        std::cout << "Client connected" << std::endl;

        // 处理客户端请求
        char buffer[1024];
        ssize_t bytesRead = read(clientSocket, buffer, sizeof(buffer));
        if (bytesRead == -1) {
            std::cerr << "Failed to read from socket" << std::endl;
            close(clientSocket);
            continue;
        }

        // 打印客户端发送的消息
        std::cout << "Received message from client: " << buffer << std::endl;

        // 发送响应给客户端
        const char *response = "Hello from server";
        ssize_t bytesSent = write(clientSocket, response, strlen(response));
        if (bytesSent == -1) {
            std::cerr << "Failed to write to socket" << std::endl;
        }

        // 关闭连接
        close(clientSocket);
        std::cout << "Client disconnected" << std::endl;
    }

    // 关闭服务器socket
    close(serverSocket);

    return 0;
}

这段代码创建了一个简单的TCP服务器,监听端口8888。它接受客户端连接,读取客户端发送的消息,然后向客户端发送一个固定的响应消息。请注意,这只是一个基本示例,并没有处理并发连接和其他错误处理。在实际生产环境中,您可能需要添加更多的代码来处理这些情况

请用c++写一个服务器

原文地址: https://www.cveoy.top/t/topic/igAg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录