unp.h的配置以及运行 Unix网络编程中的第一个例子

第一步:先配置一下unp.h

http://awind.blog.51cto.com/4628868/861306

要开始接触网络编程,用的是大名鼎鼎的Unix Network Programming这本书,第一个例子就遇到困难了,unp.h没有,到谷歌上搜索了一下,找到了一些方法。先下载unpv13e.tar.gz,

1.解压下载的unpv13e.tar.gz文件

 

 
 
  1. tar -zxvf unpv13e.tar.gz 

2。终端中进入unpv13e目录(需要给configure文件增加x权限)

 

 
 
  1. ./configure 
  2. cd lib 
  3. make 
 
 
  1. cd ../libfree  # continue building the basic library 
  2. make 

 

然后在unpv13e文件夹中成功生成libunp.a文件

3.将生成的libunp.a静态库复制到/usr/lib/中

  
  
  1. cd .. 
  2. sudo cp libunp.a /usr/lib  

4,修改unp.h并将其和config.h拷贝到/usr/include中,为了以后include方便


 
 
  1. kate lib/unp.h   //将unp.h中#include "../config.h"修改为#include "config.h"   

 

 
 
  1. sudo cp lib/unp.h /usr/include   
  2. sudo cp config.h /usr/include  

这里复制到/usr/include目录后,非root用户无权查看,记得chmod 744 一下


如果书写的程序出现err_sys()等err函数找不到的情况 这是因为steven大神对错误处理进行了封装 可以搜索apueerror.h这个文件(有兴趣的同学可以研究下封装代码 篇幅小不难的) 然后放入同上面第4步,apueerror.h拷贝到/usr/include中 ,接着再程序中 #include "apueerror.h"即可
 
至此环境搭建结束.

第二大步:

进入unpv13e 可以按照书上y用gcc编译运行了(里面有个makefile 可以在unpv13e目录里面直接make的吧?),运行的时候发现并没有时间显示,下面看:

http://blog.csdn.net/zxremail/article/details/4858714

 运行书本中的程序。
1,首先,进入到Stevens的主页中下载原码
2,然后,编译程序,方法如下:

    tar -zxvf  unpv12e.tar.gz (-C dir)//解压文件

    cd unpv12e
    ./configure    # try to figure out all implementation differences

    cd lib         # build the basic library that all programs need
    make           # use "gmake" everywhere on BSD/OS systems

    cd ../libfree  # continue building the basic library
    make

    cd ../libgai   # the getaddrinfo() and getnameinfo() functions
    make

    cd ../libroute # only if your system supports 4.4BSD style routing sockets
    make           # only if your system supports 4.4BSD style routing sockets

    cd ../libxti   # only if your system supports XTI
    make           # only if your system supports XTI

    cd ../intro    # build and test a basic client program
    make daytimetcpsrv

    make daytimetcpcli

此时会生成 daytimetcpsrv daytimetcpsrv.o daytimetcpcli daytimetcpcli.o


3、linux现在因为安全问题,各个发行版本默认是不开daytime服务的。  
   
  第一个例子实际上是两个程序,客户端和服务端,你很有可能只运行了客户端,没有运行服务端程序。  
   
  服务端程序在书上第12页……你不会尚还没有看到那里吧?  
   
  PS:由于要打开端口,所以服务端程序需要用root权限执行,所以你可以先   

    sudo   ./daytimetcpsrv  (如果本身就是root就不需要sudo)

  然后再开一个终端运行   ./daytimetcpcli 127.0.0.1  就可以看到返回的时间了  
   
  我也正在学这本书,共同进步,拉拉手先




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值