學習 《UNIX網絡編程》
阿新 • • 發佈:2017-05-30
程序設計 times 之間 unix 我們 socket 理解 字符 htm
學習本書之前,為了了解C語言,先通讀了《C程序設計語言》。但對C語言的理解、熟悉可能還是不足,所以在學習本書的過程中,遇到看不懂的C代碼,還要去查詢、思考。
本書一開始,我就遇到了問題,運行不了程序。不知道在 MACOS 上面應該怎麽編譯並使其運行。所以學習編譯並運行C代碼。
OK,現在我們知道如何編譯並運行文件了。
第一章
練習
1.3
socket error: Address family not supported by protocol family
1.4
在 while 函數體首行中添加
++bigger_than_zero_times;
1.5
for (int i=0; i<sizeof(buff); ++i) { Write(connfd, &buff[i], strlen(&buff[i])); }
計數器輸出的值為 670--740之間,還會變化。原因是什麽?
輸出是這樣
$ ./daytimetcpcli 127.0.0.1 Tue May 30 21:12:38 2017 ue May 30 21:12:38 2017 e May 30 21:12:38 2017 May 30 21:12:38 2017 May 30 21:12:38 2017 ay 30 21:12:38 2017 y 30 21:12:38 2017 30 21:12:38 2017 30 21:12:38 2017 0 21:12:38 2017 21:12:38 2017 21:12:38 2017 1:12:38 2017 :12:38 2017 12:38 2017 2:38 2017 :38 2017 38 2017 8 2017 2017 2017 017 17 7還有亂碼
有錯誤。我是想輸出一個字符,而實際輸出的是 i 之後的所有字符。原因是 strlen(&buff[i]) 這裏寫了輸出的長度。這裏改為 1 就正常了。所以答案是
for (int i=0; i<sizeof(buff); ++i) { Write(connfd, &buff[i], 1); }
學習 《UNIX網絡編程》