《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网络编程》 第四章习题的主要内容,如果未能解决你的问题,请参考以下文章

第四章课后习题

Python编程快速上手-让繁琐工作自动化 第四章 列表练习题及其答案

网络操作系统习题第四章

网络操作系统第四章课后习题解答

计算机网络原理(谢希仁第八版)第四章课后习题答案

《计算机网络·自顶向下方法》第七版 第四章 课后习题与问题 答案