《Unix网络编程》 第四章习题
Posted 东塔桥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Unix网络编程》 第四章习题相关的知识,希望对你有一定的参考价值。
4.1
没看懂题意。字节序是指数据在内存中的字节排列方式,而不是在文本文件中显示的字面值。无论INADDR_
常值是什么,只要加载入内存时是按主机序存的,那么就是主机字节序的。
4.2
struct sockaddr s_addr;
socklen_t len = sizeof(s_addr);
if(getsockname(sockfd, &s_addr, &len) < 0) {
err_sys("getsockname error");
}
printf("%s\n", sock_ntop(&s_addr, len));
在Linux系统中,临时端口范围的配置在文件/proc/sys/net/ipv4/ip_local_port_range
中指定。
4.3
connfd
这个已连接套接字的引用计数从2减为1,因为父进程还没有close这个套接字,所以TCP不会发FIN包,直到父进程也close了这个套接字,才会进行四次挥手。而listenfd
套接字,它的引用计数也会减1。
4.4
把Listen
调用注释掉后,运行,出现错误:
accept error: Invalid argument
为什么?listen
函数的作用是将一个未连接的套接字转换成一个被动套接字,指示内核应该接受指向该套接字的请求。将accept
作用于一个没有listen
的套接字,就会返回错误。
4.5
以上是关于《Unix网络编程》 第四章习题的主要内容,如果未能解决你的问题,请参考以下文章