加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

《UNIX网络编程 卷1》一、环境配置

发布时间:2023-02-01 14:44:37 所属栏目:Unix 来源:
导读:  引言

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

  本书源码可以在官网或
  引言
 
  之前做的客户端开发主要重难点在于业务逻辑的抽象与实现,而服务端开发对技术的要求更高。遂开始学习《UNIX网络编程 卷1:套接字联网API(第3版)》,敦促自己坚持。
 
  本书源码可以在官网或者图灵社区免费获取
 
  环境:macOS 10.13.1
 
  环境配置
 
  ./configure
  cd lib
  make
  cd ../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重复声明了unix网络编程,其实是头文件重复包含了,本想将/usr/include/arpa/inet.h中该行注释掉,无奈权限问题解决不了。于是按照网上办法将inet_ntop.c文件#include 这行注释掉,重新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.28
  58072 17-11-15 14:30:54 00 0 0 606.1 UTC(NIST) *
  如果对时服务器IP不可用,可查询
 
  参考
 
  UNIX网络编程(第3版)环境搭建——使用MAC OSX10.10
 
  UNIX网络编程之一:代码环境搭建
 
  《UNIX网络编程 卷1》之”学习环境搭建”(CentOS 7)
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章