引言

之前做的客户端开发主要重难点在于业务逻辑的抽象与实现,而服务端开发对技术的要求更高。遂开始学习《UNIX网络编程 卷1:套接字联网API(第3版)》,敦促自己坚持。

本书源码可以在官网或者图灵社区免费获取

环境:macOS 10.13.1

环境配置

./configurecd lib
makecd ../libfree
make

此处报错:

$ make
gcc -I../lib -g -O2 -D_REENTRANT -Wall   -c -o in_cksum.o in_cksum.c
gcc -I../lib -g -O2 -D_REENTRANT -Wall   -c -o inet_ntop.o inet_ntop.c
inet_ntop.c:56:1: error: conflicting types for 'inet_ntop'
inet_ntop(af, src, dst, size)
^
/usr/include/arpa/inet.h:77:13: note: previous declaration is here
const char      *inet_ntop(int, const void *, char *, socklen_t);^
1 error generated.
make: *** [inet_ntop.o] Error 1

提示inet_ntop重复声明了,其实是头文件重复包含了,本想将/usr/include/arpa/inet.h中该行注释掉,无奈权限问题解决不了。于是按照网上办法将inet_ntop.c文件#include <arpa/inet.h>这行注释掉,重新make即可。

接下来拷贝unp.h 文件及其对应的静态链接库 libunp.a 到 系统目录

cd ..   // 回到主目录

// 修改unp.h
gedit lib/unp.h    // 修改 #include "../config.h" 为 #include "config.h"

// 拷贝头文件
sudo cp config.h /usr/local/include
sudo cp lib/unp.h /usr/local/include

// 拷贝库文件
sudo cp libunp.a /usr/local/lib

// 接下来我们就可以编译书中的一些例子了,可以使用库文件链接 -lunp
// 如:gcc daytimetcpcli.c -o daytimetcpcli -lunp

示例代码

编译书中的第一个示例代码intro/daytimetcpcli.c

cd ./intro
gcc daytimetcpcli.c -o daytimetcpcli -lunp

执行

./daytimetcpcli 129.6.15.2858072 17-11-15 14:30:54 00 0 0 606.1 UTC(NIST) * 

如果对时服务器IP不可用,可查询http://tf.nist.gov/tf-cgi/servers.cgi

参考

UNIX网络编程(第3版)环境搭建——使用MAC OSX10.10
UNIX网络编程之一:代码环境搭建
《UNIX网络编程 卷1》之”学习环境搭建”(CentOS 7)

《UNIX网络编程 卷1》一、环境配置相关推荐

  1. 1.UNIX网络编程卷1:源码配置

    本节主要介绍UNIX网络编程卷1(第三版)在Ubuntu16.04的配置问题,并运行一个简单时间获取客户程序. 1.首先下载源文件,链接如下:UNIX Network Programming Sour ...

  2. Unix网络编程卷1 第一章读书笔记以及习题

    1 下载源码并且配置环境 对于想学习网络编程的同学来说,<UNIX网络编程>这书肯定是不二选择.所谓实践是检验真理的唯一标志,特别是对于编程来讲,再多的理论经验也比不过code一次.< ...

  3. 《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决

    <Unix网络编程卷1-套接字联网API>是本好书. 但是第一个例子不是很好编译. 需要如下步骤: 本人机器CentOS 5.4 1.下载源码 unpv13e解压到任意目录 然后按其rea ...

  4. 《UNIX网络编程卷1》第一例及问题

    <UNIX网络编程卷1>一上来就给了一个例子,新手不容易看懂,估计作者也没有打算让人看懂,作了详尽的解释.新手都想运行这个程序,我也是. 首先,给的程序都是在unix下运行的.这里有全书代 ...

  5. 《UNIX网络编程 卷1:套接字联网API(第3版)》——第2章 传输层:TCP、UDP和SCTP 2.1概述...

    本节书摘来自异步社区<UNIX网络编程 卷1:套接字联网API(第3版)>一书中的第2章,第2.1节,作者:[美]W. Richard Stevens , Bill Fenner , An ...

  6. 《UNIX网络编程 卷2:进程间通信(第2版)》——1.4 名字空间

    本节书摘来自异步社区<UNIX网络编程 卷2:进程间通信(第2版)>一书中的第1章,第1.4节,作者:[美]W. Richard Stevens著,更多章节内容可以访问云栖社区" ...

  7. 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版)

    图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) UNIX网络编程 卷1:套接字联 ...

  8. UNIX网络编程卷2:进程间通信(第2版)PDF——带完整书签

    微信搜索[书为屋],获取更多免费学习资源和小工具,一起学习,一起进步! 下载地址:UNIX网络编程卷2:进程间通信(第2版) 带完整书签: 微信搜索[书为屋],获取更多免费学习资源和小工具,一起学习, ...

  9. UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订)...

    UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订) 基本信息 原书名: Unix Network Programming, Vol ...

  10. 《UNIX网络编程 卷1:套接字联网API》学习笔记——基本TCP套接字编程

    UNIX网络编程--基本TCP套接字编程 socket 函数 connect 函数 bind 函数 listen 函数 accept 函数 fork 和 exec 函数 并发服务器 close 函数 ...

最新文章

  1. SpringCloud 面试题,最新SpringCloud 面试题,2020 SpringCloud 面试题
  2. 教你如何以对象的方式思考
  3. NIO:channel、buffer、状态变量、socket、charset
  4. MySQL删除普通用户
  5. P4213 【模板】杜教筛
  6. java并发编程面试题_阿里常用Java并发编程面试试题总结
  7. 解决编译.spec:rpm build with: fg: no job control报错
  8. step7db块寻址_STEP7数据块DB问题
  9. 谷歌浏览器导致电脑右下角莫名弹出广告解决办法
  10. 优化 WordPress 网站让百度快速收录
  11. Service(一、本地服务)
  12. 中信银行总行信息科技岗(成都)2020届校招/秋招面经+薪资待遇(更新完,已offer)
  13. 一篇文章带你弄懂乐观锁与悲观锁,CAS原子性,synchronized底层原理
  14. 看了一篇别人的年终总结,感觉对自己的启发挺大的
  15. 学生喂养动物(猫,狗,鸟)
  16. linux查看声卡型号,Linux查看声卡信息
  17. nginx在Linux的安装和简单使用
  18. 电气设备自动化控制中PLC技术的应用
  19. php ginkgo,Ginkgo: Ginkgo是一个BDD风格的Go测试框架,旨在帮助您有效地编写富有表现力的综合测试...
  20. python物理模拟_如何在Python 游戏中模拟引力

热门文章

  1. 使用webgl(three.js)搭建一个3D智慧园区、3D建筑,3D消防模拟,web版3D,bim管理系统——第四课(炫酷版一)
  2. windowns server 2008 R2激活工具(含win7、vista)
  3. tcp中的crc检验算法原理_CRC校验算法原理
  4. CPAL脚本自动化测试 ———— UDP 系列函数
  5. 大学计算机—计算思维导论 中国大学mooc 哈尔滨工业大学 测验题目和答案
  6. EViews-蒙特卡洛模型代码
  7. 数学建模之蒙特卡罗模型
  8. eclipse安装与概述
  9. 方便好用的论文管理软件EndNote X9 + PDF阅读编辑器Adobe Acrobat DC(1)
  10. 我的世界java作弊怎么开_我的世界怎么开作弊?如何启用作弊模式?