​##获得更多资料欢迎进入我的网站或者 csdn或者博客园

今天在温习计算机网络时,突然将我很久前买的《unix网络编程第三版卷一》拿出来看看了。放了两年了,哈哈。主要讲的套接字,之前编写android时用过socket(java),而本书全是c语言还是可以好好学习下的;然而第一个程序我就编译错误了,什么鬼!! ,还好之后,用了神奇的谷歌,发现源码下居然有readme。真是提醒我了,以后一定要注意这个文件。

源码下载地址官方地址

我直接编译遇见的问题:

#1.解压文件进入主目录
cd intro
#2.直接编译
gcc -o 1.out daytimetcpcli.c
#错误提示如下:
daytimetcpcli.c:1:17: fatal error: unp.h: No such file or directory
#include "unp.h"
^
compilation terminated.
#在../key目录下找到unp.h。继续提醒没有<sys/fiflo.h>从网上下载继续出问题。
#3.看到目录下有make文件,make一下:显示如下:
peace@peace:~/workspace/unpv13e/unpv13e/intro$ make
Makefile:1: ../Make.defines: No such file or directory
make: *** No rule to make target '../Make.defines'. Stop.

崩溃,简答的测试程序都不行。没办法,谷歌;终于找到了

解决办法:

参照主目录下readme文件执行一下命令:

注意:

1最后一个命令有改动

2前面三个命令是必须的 ./configure,cd lib ,make

3后面的cd ../libfree  cd ../libroute cd ../libxti 满足条件才需要执行

 ./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 cd ../intro # build and test a basic client program
make #官方是make daytimetcpcli

终于编译成功了。内牛满面;

测试:

sudo ./daytimetcpcli 127.0.0.1
[sudo] password for peace:
connect error: Connection refused
哭晕啊

成功执行

到网上一查才发现是系统默认没打开daytime服务。

解决办法:

在intro中执行一下命令打开daytime服务

 sudo ./daytimetcpsrv

由于此程序在运行中;需要另外打开终端,进入intro中测试

sudo ./daytimetcpcli 127.0.0.1
[sudo] password for peace:
Thu Jul 23 21:50:23 2015

得到正常结果;

我的失误,希望能对大家有帮助;

unix网络编程源码编译问题的更多相关文章

  1. linux/unix网络编程之 select

    转自http://www.cnblogs.com/zhuwbox/p/4221934.html linux 下的 select 知识点 unp 的第六章已经描述的很清楚,我们这里简单的说下 selec ...

  2. unix网络编程之listen()详解

    转自于:http://blog.csdn.net/ordeder/article/details/21551567 Unix网络编程描述如下: #include <sys/socket.h> ...

  3. 单片机C语言基础编程源码六则

    1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直 ...

  4. linux/unix网络编程之epoll

    转载自 Linux epoll模型 ,这篇文章讲的非常详细! 定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显 ...

  5. linux/unix网络编程之 poll

    转自http://www.cnblogs.com/zhuwbox/p/4222382.html poll 与 select 很类似,都是对描述符进行遍历,查看是否有描述符就绪.如果有就返回就绪文件描述 ...

  6. 【itclx面向对象二】窥探itcl面向编程源码

    从上一篇博客看出,itcl的语法其实不难,但是有个缺点,编程习惯与当前类似C++常见的面向编程还是有些区别,并且在大型项目实施中这种方式很费劲. 于是有了itclx. 例如: 1.成员变量.成员方法调 ...

  7. 单片机C语言基础编程源码六则2

    1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直 ...

  8. Unix网络编程之环境搭建

    环境搭建 在尝试UNP书上的样例时,会由于找不到"unp.h"等问题无法编译成功.因此在学习之前须要先搭建好编译环境. 步骤 <1>下载  UNIX网络编程源码unpv ...

  9. Unix网络编程第三版源码编译

    配置: $ cd Unix-Network-Programming/ $ chmod 755 configure $ ./configure 主要的工作是检查系统是否有源码编译所依赖的各种资源(系统版 ...

随机推荐

  1. JQuery UI Datepicker中文显示的方法

    出自:http://www.aimks.com/method-to-display-the-jquery-ui-datepicker-chinese.html Query UI Datepicker这 ...

  2. 音频AAC编码浅析

    /* * unsigned long nSampleRate, // 采样率,单位是bps * unsigned long nChannels, // 声道,1为单声道,2为双声道 * unsigne ...

  3. Java调用Webservice(asmx)的几个例子

    Java调用Webservice(asmx)的几个例子 2009-06-28 17:07 写了几个调用例子: 1. import org.apache.axis.client.*;import org ...

  4. 病症:arm启动后应用程序界面显示…

    病症:病症:arm启动后应用程序界面显示不正常(左面有部分未能正常显示)也就是左面少一块区域,右面多一部, 原因:lcd显示驱动中场扫描的问题 平台:s3c2416.linux2.6.800*480l ...

  5. jQuery简单介绍及基本用法(选择器&DOM操作)

    简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是“write Le ...

  6. JVM 对象状态判断01

    1 引用计数法     给一个对象添加一个引用计数器,每当有一个地方引用时,计数器加1,当引用失效的时候,计数器减去1.当计数器为0的时候,表示对象不可能再被使用.此时表明该对象可以被回收.     ...

  7. ReactNative项目创建及结构分析

  8. 【bzoj1455】罗马游戏

    1455: 罗马游戏 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1061  Solved: 439[Submit][Status][Discuss] ...

  9. SpringBoot27 JDK动态代理详解、获取指定的类类型、动态注册Bean、接口调用框架

    1 JDK动态代理详解 静态代理.JDK动态代理.Cglib动态代理的简单实现方式和区别请参见我的另外一篇博文. 1.1 JDK代理的基本步骤 >通过实现InvocationHandler接口来 ...

  10. MySQL - pt-query-digest的下载与使用

    对于脚本文件,是可以执行的,我们不用安装.所以,但是这个脚本文件没有执行的权限,所以,我们首先赋予这个脚本文件的可执行的权限. 再次查看文件的信息后. 已经有了执行的权限了. 运行脚本的时候,可要注意 ...