码迷,mamicode.com
首页 > 其他好文 > 详细

学习 《UNIX网络编程》

时间:2017-05-30 21:54:12      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:com   not   长度   如何   ted   变化   应该   语言   bash   

学习本书之前,为了了解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网络编程》

标签:com   not   长度   如何   ted   变化   应该   语言   bash   

原文地址:http://www.cnblogs.com/jay54520/p/6921183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!