说在前面
- 环境: WSL
- 参考: UNIX网络编程
错误处理
- 所有程序都需要检查每个函数调用是否返回错误。当发生错误时,必须进行相应的处理,例如打印出错消息等。
- 由于这种错误处理的普遍性,我们可以定义包裹函数(wrapper function)来缩减程序。例如,
我们使用首字母大写的函数名来表示这是一个包裹函数。int Socket(int family, int type, int protocol) { int n; if ( (n = socket(family, type, protocol)) < 0) err_sys("socket error"); return(n); }
编译
- 使用cmake,教程见【linux/c】cmake一步步来
- 以getdaytime为例,文件结构如下:
- ./include/unp.h
头文件以及一些函数定义 - ./src
函数实现,以及CMakeLists.txt - client.c/server.c
client以及server主程序
- ./include/unp.h
- 使用方式
# 进入文件夹getdaytime_wrap cmake . make
- 结果
代码
- github
- 在本节的代码中,我们的封装函数只定义了几个,不同于原书中一开始就给出所有,这里是想一步步的去搭建和完善。在本节中还使用了cmake,同样是一个逐步扩展的过程。