《UNIX网络编程 卷1》之"学习环境搭建"(CentOS 7)
2015-06-22 15:21
1166 查看
《UNIX网络编程 卷1》的源码可以从www.unpbook.com下载得到。解压之后的目录为unpv13e。
针对上边的问题‘redefinition of ‘struct in_pktinfo’,我们需要将unpv13e/key/unp.h及unpv13e/sctp/unp.h中的“struct in_pktinfo”结构体声明注释掉,因为它已经被包含在标准头文件bits/in.h中了。修改之后需要重新编译 。
以上步骤会生成一个静态库libunp.a。
2)测试上面生成的可执行文件获取本机当前日期:
在进行测试时会出现以下错误:
3)该错误表示 daytime 服务程序没开,可通过 xinetd来实现对服务连接请求的控制。以下通过 xinetd 开启 daytime 服务程序。
如果xinetd.d文件夹是空的,则需要先安装xinetd服务:
将 daytime-stream 和 daytime-dgram 两个文件中的 disable = yes 修改成 disable = no,并保存退出,然后重启 xinetd:
4)再次测试该例子,能成功显示本机时间:
Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)
CentOS开启daytime服务器
详细步骤
编译
进入unpv13e目录,按如下步骤编译:./configure cd lib make // 可能遇到问题:redefinition of ‘struct in_pktinfo’ cd ../libfree make cd ../libroute make //这一步可能会出错,可忽略,只是表示你的系统不支持 4.4BSD,并不影响对该书的学习 cd ../libgai make
针对上边的问题‘redefinition of ‘struct in_pktinfo’,我们需要将unpv13e/key/unp.h及unpv13e/sctp/unp.h中的“struct in_pktinfo”结构体声明注释掉,因为它已经被包含在标准头文件bits/in.h中了。修改之后需要重新编译 。
以上步骤会生成一个静态库libunp.a。
将生成的libunp.a静态库复制到/usr/lib/和/usr/lib64/中
cd .. //回到 unpv13e 目录 sudo cp libunp.a /usr/lib sudo cp libunp.a /usr/lib64
修改unpv13e/lib/unp.h并将其和config.h拷贝到/usr/include中
vim lib/unp.h //将 unp.h 中#include "../config.h"修改为#include "config.h" sudo cp lib/unp.h /usr/include sudo cp config.h /usr/include
运行示例(unpv13e/intro/daytimetcpcli.c)
1)编译时必须加上静态链接库:-l 参数加上 libunp.a 去掉lib和后面的.a。最后得到参数-lunpcd ./intro gcc daytimetcpcli.c -o daytimetcpcli -lunp
2)测试上面生成的可执行文件获取本机当前日期:
./daytimetcpcli 127.0.0.1
在进行测试时会出现以下错误:
connect error:Connection refused
3)该错误表示 daytime 服务程序没开,可通过 xinetd来实现对服务连接请求的控制。以下通过 xinetd 开启 daytime 服务程序。
sudo cd /etc/xinetd.d/ sudo vim daytime
如果xinetd.d文件夹是空的,则需要先安装xinetd服务:
sudo yum install xinetd.x86_64
将 daytime-stream 和 daytime-dgram 两个文件中的 disable = yes 修改成 disable = no,并保存退出,然后重启 xinetd:
service xinetd restart
4)再次测试该例子,能成功显示本机时间:
./daytimetcpcli 127.0.0.1
22 JUN 2015 15:20:03 CST
参考资料
《网络编程》关于 UNIX网络编程 卷1 的 unp.h 和源码编译问题Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)
CentOS开启daytime服务器
相关文章推荐
- 聊聊HTTPS和SSL/TLS协议
- Linux网络相关配置
- TCP/IP协议族-----9、网际控制报文协议(ICMP)
- muduo网络图书馆评测
- unix网络编程-编译
- http 状态码 504 502
- *******************网络图片查看器*************
- HTML URL 编码:请参阅:http://www.w3school.com.cn/tags/html_ref_urlencode.html
- 进程间通信(10) - 网络套接字(socket)[1]
- HTTPS 双向认证构建移动设备安全体系
- iOS http get和post(3)
- iOS http get和post(2)
- iOS http get和post
- 网络图片查看器(多线程、Handler)
- 黑马程序员---网络编程
- Threadf访问网络从网络中浏览图片
- TCP网络程序设计
- 黑马程序员_JAVA网络编程
- 不可思议的递归神经网络
- Windows7下连接上了网络,但上不了网,其他人均可以