请各位大侠解读一段程序。
/* include Listen */void
Listen(int fd, int backlog)
{
char *ptr;
/*4can override 2nd argument with environment variable */
if ( (ptr = getenv("LISTENQ")) != NULL)
backlog = atoi(ptr);
if (listen(fd, backlog) < 0)
err_sys("listen error");
}
/* end Listen */
以上这段程序是我在《unix network programming》中看到的,对于backlog的用法不明白,请高手帮忙。 backlog表示监听套接字的完成连接队列的最大长度,即这个套接字能够接收的最大数目的未接收连接。如果当一个客户的SYN数据段到达时,监听套接字的完成连接队列已经满了,那么TCP将忽略这个SYN数据段。对于不能接收的SYN数据段,TCP协议不发送RST数据段。 同意楼上!!! 为什么要用环境变量重写backlog?
页:
[1]