unix网络编程环境搭建

网络编程
环境

1.点击下载源代码

可以通过下列官网中的源代码目录下载最新代码:

http://www.unpbook.com/src.html

2.解压文件

  1. tar -xzvf upv13e.tar.gz 

3.上传至阿里云

本人本地已经配置好,这次实验是将环境搭建至云服务器中。

  1. scp -r unpv13e root@120.76.140.119:/root/program/unp 

  2. // -r 上传文件夹 

4.编译文件

  1. cd unpv13e 

  2. chmod a+x configure //非root用户需要赋予可执行能力 

  3. ./configure 

  4. cd lib //进入lib目录并且编译 此为编译库文件  

  5. make 

  6. cd libfree //进入libfree目录并且编译 

  7. make 

libfree编译会出现下列问题:

  1. inet_ntop.c: In function ‘inet_ntop’: 

  2. inet_ntop.c:60:9: error: argument ‘size’ doesn’t match prototype 

  3. size_t size; 



  4. In file included from inet_ntop.c:27:0: 

  5. /usr/include/arpa/inet.h:64:20: error: prototype declaration 

  6. extern const char *inet_ntop (int __af, const void *__restrict __cp, 



  7. <builtin>: recipe for target 'inet_ntop.o' failed 

  8. make: *** [inet_ntop.o] Error 1 

错误提示inet_ntop.c中60行声明与原型申明/usr/include/arpa/inet.h不匹配。(#include一般所在文件都在/usr/include中)

经查验,最后一个参数,在inet.h中定义socklen_t,而inet_ntop.c中定义为size_t。在inet_ntop.c中加入如下代码即可:(插入到所有头文件之后)

  1. #define size_t socklen_t 

此时make就能成功。

5.测试introduction实例

1.使用make命令进行测试

  1. cd intro 

  2. make daytimetcpsrv 

  3. make daytimetcpcli 

  4. //测试结果 

  5. ./daytimetcpsrv 

  6. ./daytimetcpcli 127.0.0.1 

  7. Sat May 6 21:35:10 2017 

2.使用gcc编译进行测试

  1. //拷贝libunp.a到库文件夹目录/usr/lib,便于使用-lunp命令 

  2. cp libunp.a /usr/lib 

  3. //修改头文件unp.h,并将unp.h和config.h拷贝到/usr/include 

  4. cp /lib/unp.h /usr/include 

  5. cp config.h /usr/include 

  6. //由于config.h与unp.h在同一个目录夹下 

  7. vim /usr/include/unp.h 

  8. //修改include "../config.h"成“config.h" 

编译测试代码

  1. cd ./intro  

  2. gcc daytimetcpcli.c -o daytimetcpcli -lunp 

  3. gcc daytimetcpsrv.c -o daytimetcpsrv -lunp 

  4. ./daytimetcpsrv 

  5. ./daytimetcpcli 127.0.0.1 

  6. Sat May 6 21:35:10 2017 

-lworld表示在上面的lib的路径中寻找libworld.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)

6.如果需要关闭服务器程序,需要使用下面方法

  1. netstat -anp |grep daytimetcpsrv //具体含义使用--help查看,找到pidnum 

  2. kill -9 pidnum 

unix网络编程环境搭建的更多相关文章

  1. UNIX网络编程 环境搭建

    配置好动态链接库或者静态链接库 1,下载UNIX网络编程书的头文件及示例源码unpv13e 2    按照readme来编译 Execute the following from the src/ d ...

  2. 记录一次配置unix网络编程环境的过程和遇到的问题

    记录一次搭建unix网络编程环境过程中遇到的问题和总结 计算机环境虚拟机 linuxmint-18-xfce-64bit 1.打开unix网络编程.iso 把目录下的文件复制到某一目录,修改权限,可命 ...

  3. ubuntu14.04下unix网络编程环境的配置

    建议 unpv13e/README看一下,忽略一下内容 ===================================================================== 操作 ...

  4. unix网络编程环境配置程序运行

    1 查看ubuntu版本 cat /etc/issue 2 查看版本 cat /proc/version 3 下载 你可以通过其他方式下载 这里下载好了 文件名为unpv13e 4 开始配置 (1)c ...

  5. ubuntu14.04下unix网络编程 环境的配置

    在ubuntu下 首先:在unpv13e文件加下 ./configure cd lib make cd ../libfree make cd ../liggai make cd .. vim lib/ ...

  6. 【转】Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)

    下面开始用简单但典型的客户端和服务器端程序说明如何进行网络编程.这一小节讲的是客户端,一个用来连接并读取服务器发送来的时间的客户端. 这里涉及到了编写代码,因此要 搭建unix网络编程环境 unix系 ...

  7. 【UNIX网络编程第三版】阅读笔记(一):代码环境搭建

    粗略的阅读过<TCP/IP详解>和<计算机网络(第五版)>后,开始啃这本<UNIX网络编程卷一:套接字联网API>,目前linux下的编程不算太了解,在阅读的过程中 ...

  8. 《UNIX网络编程 卷1》之"学习环境搭建"(CentOS 7)

    <UNIX网络编程 卷1>的源码可以从www.unpbook.com下载得到.解压之后的目录为unpv13e. 详细步骤 编译 进入unpv13e目录,按如下步骤编译: ./configu ...

  9. Unix NetWork Programming(unix环境编程)——环境搭建(解决unp.h等源码编译问题)

    此配置实例亲测成功,共勉,有问题大家留言. 环境:VMware 10 + unbuntu 14.04 为了unix进行网络编程,编程第一个unix程序时遇到的问题,不能包含unp.h文件,这个感觉和a ...

随机推荐

  1. Sublime Text 2激活、插件包安装、以及快捷键

    http://jingyan.baidu.com/article/ff4116259b057c12e48237b8.html Sublime Text作为一款轻量.简洁.高效.跨平台的编辑器.支持N多 ...

  2. 2017-06-25(常用快捷键 history 用户及用户组)

    常用快捷键 ctrl+l 清屏 (与clear命令功能相似) ctrl+c 强制终止当前命令 crtl+a 光标移到命令行首 crtl+e 光标移到命令行尾 ctrl+u 从光标所在位置删除至行首 c ...

  3. RocketMQ环境搭建(双master双slave模式)

    1.环境准备: 准备四台主机(我这里用CentOSx64) 主机 角色 broker 192.168.192.130 Master1 BrokerServerA 192.168.192.131 Mas ...

  4. JVM-垃圾收集的过程

    JDK1.7 JVM的垃圾收集算法有 1. 标记-清除算法: 2. 复制算法:在商业虚拟机都是使用这种算法来回收新生代的 3. 标记-整理算法: JDK1.7 JVM的垃圾收集器有 1. Serial ...

  5. Linux指令--watch,at

    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个 ...

  6. webpack + vue

    开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.ES6语法 前言 在对着产品高举中指怒发心中之愤后,真正能够解 ...

  7. JSP错误页面的处理和exception对象

    exception对象可以使用的主要方法如下所示. l        getMessage():该方法返回错误信息. l        printStackTrace():该方法以标准错误的形式输出一 ...

  8. awk 实用技巧

    awk 用法:awk ' pattern {action} ' 变量名 含义ARGC 命令行变元个数ARGV 命令行变元数组FILENAME 当前输入文件名FNR 当前文件中的记录号FS 输入域分隔符 ...

  9. Core Animation 文档翻译 (第四篇)

    Core Animation 文档翻译(第四篇) 让Layer的content动画起来 核心动画的基础接口以及为拥有Layer的View做的动画扩展接口,使得为Layer制作复杂动画变得简单化.例如改 ...

  10. DRBD的主备安装配置

    drbd软件包链接:https://pan.baidu.com/s/1eUcXVyU 密码:00ul 1.使用的资源:1.1 系统centos6.9 mini1.2 两台节点主机node1.node2 ...