1、int listen(SOCKET s, int backlog);该函数中第二个参数的含义是?
正确答案: C
A、是否打开log信息
B、是否打开后台log信息
C、后台等待连接队列的最大限制值
D、后台等待连接队列的最小限制值
E、无意义
int listen(int sockfd,int backlog)
sockfd:是bind后的文件描述符.
backlog:设置请求排队的最大长度.当有多个客户端程序和服务端相连时, 使用这个表示可以介绍的排队长度. listen函数将bind的文件描述符变为监听套接字.返回的情况和bind一样.
《TCP/IP详解 卷1:协议》 解释
1)backlog 用于在TCP层接收链接的缓冲池的最大个数,这个个数可在应用层中的listen函数里设置,当客户链接请求大于这个个数(缓冲池满),其它的未进入链接缓冲池的客户端在tcp层上tcp模块会自动重新链接,直到超时(大约57秒后)
2)我们的应用层的链接完成是要从tcp层的链接缓冲池中移出一个(accept函数实现)
backlog是连接请求队列的最大长度。
(1)在WinSock1.1中最大值5。如果backlog小于1,则backlog被置喂1;若backlog大于SOMAXCONN(定义在winsock.h中,值为5),则backlog被置为SOMAXCONN。
(2)在WinSock2中,没有制定具体值,它由服务提供者决定
(3)有时候backlog设置很小,这时我们接进多少台机器都没问题是因为服务器机器处理速度很快队列来不及填满就处理完了,而且在同一个时刻到来的连接还是很少的
2、linux tcpdump监听网卡 eth0,对方主机IP为10.1.1.180,tcp端口为80的数据,相应命令为?
正确答案: D
A、tcpdump -h eth0 -nn 'tcp and host 10.1.1.180:80'
B、tcpdump -i eth0 -nn 'tcp and host 10.1.1.180:80'
C、tcpdump -h eth0 -nn 'tcp