运行 Unix网络编程 中的第一个例子 时间日期例子

来源:互联网 发布:达内linux视频 百度云 编辑:程序博客网 时间:2024/06/05 05:44
 
 
转载地址:

净心的博客

运行书本中的程序。
1,首先,下载源码:unpv13e.tar.gz
2,然后,编译程序,方法如下:(具体编译方法可以看unpv13e中的README文档)

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

    cd    unpv13e
    ./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 ../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
  (在我的电脑上这两个make没有通过,也不要紧,看后面的注释可以看到它们对应于特定的平台才会通过,这里不影响我们编译该客户端服务器时间日期程序)
 接着往下:

    cd ../intro    # build and test a basic client program
  
 make daytimetcpsrv
   此时会生成   daytimetcpsrv daytimetcpsrv.o 
<用gcc -o  daytimetcpsrv   daytimetcpsrv.c编译会出错>
  (这一步在README文件中没有写出,要注意!!!!假如我们没有执行make daytimetcpsrv,而是直接执行make daytimetcpcli,然后输入 ./daytimetcpcli 127.0.0.1 后发现报错;Connection Refused。上网google了一下解决了这个问题,原来是因为这个版本的系统默认是不开daytime服务的,而且开启daytime服务需要有root权限,然后你会看到在相同的目录下有一个daytimetcpsrv.c文件,编译(make daytimetcpsrv)后执行它,注意需要有root权限,即sudo   ./daytimetcpsrv。它的功能就是开启本机的daytime服务,然后你再开启一个终端,敲击./daytimetcpcli 127.0.0.1后返回了你想要的结果。

    make daytimetcpcli
<用gcc -o  daytimetcpcli   daytimetcpcli.c编译会出错>
此时会生成  daytimetcpcli daytimetcpcli.o


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

    sudo   ./daytimetcpsrv  (如果本身就是root就不需要sudo)<要打开小于1024端口的服务,要用root才能执行>

  然后再开一个终端运行   ./daytimetcpcli 127.0.0.1  就可以看到返回的时间了  
   

0 0
原创粉丝点击