posix 소켓을 사용하여 웹 서버에 대한 테스트 케이스를 작성하는 방법은 무엇입니까? [폐쇄]

posix 소켓을 사용하여 웹 서버에 대한 테스트 케이스를 작성하는 방법은 무엇입니까? [폐쇄]

나는 프로그램을 실행하여 실험적으로 테스트하는 방법을 알고 있지만 이상적으로는 작성하면서 작성한 모든 함수를 테스트하고 싶습니다. 종종 함수 전체를 작성하기 전까지는 함수를 테스트할 수 없어서 문제가 무엇인지 파악하기가 어렵습니다.

이와 같은 기능에 대한 테스트 케이스를 작성할 수 있도록 소켓의 옵션, 플래그, 설정 등을 테스트하는 방법이 Posix에 있습니까?

이러한 기능을 테스트하는 가장 좋은 방법은 무엇입니까?

 /**
 * Creates a listening socket, sets it up with setsockopt, bind, and listen.
 * @param port the port of the listening socket.
 * @return the file descriptor of the listening socket.
 */
int SetUpListeningSocket(int port)
{
    //Variables:
    struct sockaddr_in server;
    int s;

    // setup socket address structure
    memset(&server, 0, sizeof (server));
    server.sin_family = AF_INET;
    server.sin_port = htons(port);
    server.sin_addr.s_addr = INADDR_ANY;

    // create socket
    s = socket(PF_INET, SOCK_STREAM, 0);
    if (!s)
    {
    perror("socket");
    exit(-1);
    }

    // set socket to immediately reuse port when the application closes
    int opt = 1;
    if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof (opt)) < 0)
    {
    perror("setsockopt");
    exit(-1);
    }

    // call bind to associate the socket with our local address and
    // port
    if (bind(s, (const struct sockaddr *) &server, sizeof (server)) < 0)
    {
    perror("bind");
    exit(-1);
    }

    // convert the socket to listen for incoming connections
    if (listen(s, SOMAXCONN) < 0)
    {
    perror("listen");
    exit(-1);
    }
    return s;
}

관련 정보