1. 程式人生 > >Unix網路程式設計學習筆記課後題(Chapter 4)

Unix網路程式設計學習筆記課後題(Chapter 4)

4.1 如何辨別<netinet/in.h>中定義的INADDR_是主機序還是網路序。

less /usr/include/netinet/in.h

在這裡插入圖片描述
可以發現是按小端序儲存的,Linux的主機序就是小端序。
還有個想法,可以用htonl()去轉換,看結果是不是相等。

4.2
在connect呼叫返回成功後呼叫getsockname檢視本地地址和埠號

len=sizeof(cliaddr);
Getsockname(sockfd, (SA*)&cliaddr,&len);
printf("local addr: %s, port: %d\n",
        Sock_ntop
((SA*)&cliaddr,len));

4.3

[email protected]:~/unp/unpv13e/intro$ ./daytimetcpsrv1
accept error: Invalid argument

4.4
沒有bind,會隨機為listenfd賦予一個臨時埠,cli不能連線到srv