int main(void) {

int server_sock = -1;
u_short port = 0;
int client_sock = -1;
struct sockaddr_in client_name;

//这边要为socklen_t类型
socklen_t client_name_len = sizeof(client_name);
pthread_t newthread;

server_sock = startup(&port);
printf("httpd running on port %d\n", port);

while (1)
{
    //接受请求,函数原型
    //#include <sys/types.h>
    //#include <sys/socket.h>  
    //int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
    client_sock = accept(server_sock,
        (struct sockaddr*) & client_name,
        &client_name_len);
    if (client_sock == -1)
        error_die("accept");
    /* accept_request(client_sock); */

     //每次收到请求,创建一个线程来处理接受到的请求
     //把client_sock转成地址作为参数传入pthread_create
    /*第一个参数为指向线程标识符的指针。
    第二个参数用来设置线程属性。
    第三个参数是线程运行函数的起始地址。
    最后一个参数是运行函数的参数。*/
    if (pthread_create(&newthread, NULL, (void*)accept_request, (void*)(intptr_t)client_sock) != 0)
        perror("pthread_create");
}

close(server_sock);

return(0);

}