学习 《UNIX网络编程》

学习本书之前,为了了解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);
		}

  

 

时间: 2024-12-29 23:33:02

学习 《UNIX网络编程》的相关文章

node入门学习(一)

一.安装node.js 方式很多npm,git等,新手建议从官网上直接去下载node的安装包.一键安装. 二.创建一个web服务器. const http = require('http'); http.createServer(function(request,response){ response.writeHead(200,{'Content-Type':'text/plain'}); response.end('Hello World'); }).listen(8888); consol

node入门学习(二)

一.模块系统 1.创建模块和引用模块 //如何创建一个模块 exports.hello = function(){ console.log('hello worl'); }; //这创建了一个模块 //如何引用模块 //1.require(); var hello = require('./module.js'); hello.hello(); //2. var {hello} = require('./module.js'); hello(); 2.服务端的模块 //服务端的模块 var ht

node入门学习1

一个普通网站访问过程(1)浏览器向服务器发出一个HTTP请求(2)域名解析为IP地址(3)建立TCP连接(4)浏览器发起HTTP请求(5)服务器接收到HTTP请求,解析请求的路径和参数 出现乱码的原因:编码(1)设置内容类型的响应头res.setHeader('Content-Type','text/html;charset=utf-8');(2)需要判断URl,看请求的是什么有个问题:为什么平时不请求(3)请求方式GET获取资源POST提交数据

Node.js学习笔记【1】入门(服务器JS、函数式编程、阻塞与非阻塞、回调、事件、内部和外部模块)

笔记来自<Node入门>@2011 Manuel Kiessling JavaScript与Node.js Node.js事实上既是一个运行时环境,同时又是一个库. 使用Node.js时,我们不仅仅在实现一个应用,同时还实现了整个HTTP服务器. 一个基础的HTTP服务器 server.js:一个可以工作的HTTP服务器 var http = require("http"); http.createServer(function(request, response) { r

《node入门》学习

node入门原书地址:https://www.nodebeginner.org/index-zh-cn.html node入门,循序渐进讲了javascript,node的回调和一些api的应用,很清晰,翻译也很给力.最终是一个例子,可以上传图片以及展示. 最后例子,遇到了麻烦,运行报错 可见零时文件已经创建 代码如下 1 function upload(response, request){ 2 console.log("Request handler 'upload' was called.

[Todo] Nodejs学习及Spider实验(包括php入门学习、React入门学习)

/Users/baidu/Documents/Data/Interview/Web-Server开发 深入浅出Node.js-f46c http://blog.csdn.net/u012273376/article/details/52736906 利用nodejs做爬虫 http://www.runoob.com/nodejs/nodejs-callback.html nodejs学习之路 http://www.runoob.com/php/php-tutorial.html php学习之路

Less入门学习总结

Less入门学习总结 一.什么是Less   css的Less好比是js的Jquery,可以让人们更方遍快捷的使用css,使css代码更简洁,可以减少重复的代码,减少开发人员的工作量. Less CSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS赋予了动态语言的特性,如变量.继承.运算.函数等,更方便CSS的编写和维护. Less中文手册:less.bootcss.com 二.编译工具 1.Koala:国人开发的LESS/SASS编译工具 下载地址:http:

Node入门(转)

原文链接:http://www.nodebeginner.org/index-zh-cn.html Node入门 作者: Manuel Kiessling翻译: goddyzhao & GrayZhang & MondayChen 关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版.因此,只有当进行错误更正以及针对新版本Node.js的改动进行

系列文章--Node.js学习笔记系列

Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql) Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识 Nodejs学习笔记(七)--- Node.js + Exp

Node.Js学习01: Module System 以及一些常用Node Module

Node.Js学习就按照这本书的流程来. 在第7章结束与第10章结束时分别自己出一个小项目练练手.Node.Js的入门学习计划是这样. 目录:, QQ:1045642972 欢迎来索书以及讨论Node.Js. Node.Js Demo Node.Js官网提供了一个最基本的Demo Code: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type':