Unix网络编程
Ethan95
这个作者很懒,什么都没留下…
展开
-
Unix网络编程学习笔记课后题(Chapter 1)
1.3 把daytimetcpcil.c中socket的参数改为9999,编译并运行,结果:ethan@ethan-virtual-machine:~/unp/unpv13e/intro$ ./daytimetcpcli 127.0.0.1socket error: Address family not supported by protocol使用man errno查找,发现err...原创 2018-12-07 20:39:12 · 767 阅读 · 1 评论 -
Unix网络编程学习笔记课后题(Chapter 2)
2.3536是IPV4的最小重组缓冲区大小576-20*22.5从令牌环发往以太网的报文不能超过以太网的MSS,而从以太网发出的报文为了避免分片,不会超出自身的MTU,因此最大的包也是1460。2.62.7 选择性确认是说确认序号的包收到,而累计确认表示前面所有的都收到。...原创 2018-12-08 10:26:12 · 464 阅读 · 0 评论 -
Unix网络编程学习笔记课后题(Chapter 3)
3.1因为不同类型的套接字长度不同。IPV4和IPV6套接字长度固定,但Unix域结构和数据链路结构是可变长度的,需要一个参数记录结果的大小,直接传就是值传递了,需要传一个指针,以实现引用传递。3.2void指针只能用来传参数,不能对void类型指针加减和解引用3.3匆匆忙忙按自己的理解写了下, 也不知道对不对。。先这样吧#include "../lib/unp.h"#include...原创 2018-12-08 22:47:19 · 753 阅读 · 0 评论 -
Unix网络编程学习笔记(181206)
刚开始学,下载了源代码,直接进intro里make不行,上网查了下,发现给了一个README,应该按照这个来./configure # try to figure out all implementation differencescd lib # build the basic library that all programs needmake ...原创 2018-12-06 22:07:18 · 263 阅读 · 0 评论 -
Unix网络编程学习笔记课后题(Chapter 4)
4.1 如何辨别<netinet/in.h>中定义的INADDR_是主机序还是网络序。less /usr/include/netinet/in.h可以发现是按小端序存储的,Linux的主机序就是小端序。还有个想法,可以用htonl()去转换,看结果是不是相等。4.2在connect调用返回成功后调用getsockname查看本地地址和端口号len=sizeof(clia...原创 2018-12-09 21:13:51 · 604 阅读 · 0 评论 -
关于wait和waitpid
今天看了第五章,对于wait和waitpid这块一直没有搞的特别懂。自己修改了下sigchldwait.c里的方法,在循环里调用了wait。 while((pid = wait(&stat))>0) printf("child %d terminated\n", pid);然后运行tcpcli04,创建了五个子进程,第一个输入...原创 2018-12-10 19:44:22 · 209 阅读 · 0 评论 -
Unix网络编程学习笔记课后题(Chapter 5)
5.15.2二进制文件中的0会被当做是字符串的结束,如果在读取的换行符前有一个0,会导致strlen得到的长度短于换行符所在,客户端发出了,而服务器的readline在等待换行符,导致发生了死锁。5.4 kill了服务器的进程,又发送数据,会收到一个RST,则客户端就不会再发送FIN了...原创 2018-12-10 20:29:04 · 362 阅读 · 0 评论 -
Unix网络编程学习笔记课后题(Chapter 6)
6.1 在/usr/include/x86_64-linux-gnu/sys/select.h中查看fd_set的定义/* fd_set for select and pselect. */typedef struct { /* XPG4.2 requires this member name. Otherwise avoid the name from the ...原创 2018-12-11 16:58:32 · 424 阅读 · 0 评论