因为代码有500行,相对较长,这里不再按照源代码的顺序,而是按照调用关系,先main,后一个个方法展开
int main(void)
{
int server_sock = -1;
//----------该httpd的服务socket的fd ,声明
u_short port = 4000;
//---------- 默认端口 4000
int client_sock = -1;
//---------- server_sock每接受到一个新的连接,就会创建一个新的socket,服务器(本机) 通过该socket与客户机进行通讯
//----------- server_sock继续监听其他的连接请求
struct sockaddr_in client_name;
//----------- accept会将客户机的地址信息,本程序好像只是声明了这个变量,没有使用
socklen_t client_name_len = sizeof(client_name);
//----------- 客户机的地址信息占用的空间
pthread_t newthread;
//----------- 每当接受一个新的请求,创建一个新的连接(同时创建一个新的client_sock)来处理
server_sock = startup(&port);
//---------- 这是服务器监听端口的启动函数,后续会展开分析,返回server_sock的fd
printf("httpd running on port %d\n", port);