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. ^ 

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

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

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

  8. ^ 

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

  10. 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. 【Android】屏幕尺寸的表示

    1. 单位 - px(pixel): 普通的像素点描述,位图中的一个颜色点(RGBA或者YUV) - dip(device independent pixels): 设备独立像素. - dp: 与di ...

  2. Spring @Scheduled 在tomcat容器里面执行两次

    今天在用spring里面的@Scheduled执行定时任务,但是发现到触发定时任务的时间点总会执行两次.原因是修改了tomcat conf包下面的server.xml文件导致的.配置如下: <H ...

  3. apktool给软件加注册机修改图标和文件名

    功能实现,即让你的软件具有注册机功能,或者破解别人的软件,据为己有! 先反编译文件包 然后全局工具,修改图标和名称 加注册机,输入key,下载计算器,即可.给某个用户设置自定义的使用时间!

  4. Django_xamdin安装与使用

    有比Django更加强大的admin? xadmin? pip install xadmin 如何让xadmin生效? 新增两个注册app,xadmin,crispy_forms,通过run mana ...

  5. linkin大话数据结构--Collection和Iterator

    linkin大话数据结构--Collection和Iterator Java 集合就像一种容器,可以把多个对象的引用放入容器中.Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系 ...

  6. 【转】awk 里的substr函数用法举例

    awk 里的substr函数用法举例: 要截取的内容:2007-08-04 04:45:03.084 - SuccessfulTradeResult(status: 1, currencyPair: ...

  7. 【转】5 Best Place to Learn Linux – Linux Tutorial Sites

    Linux have amazed every tech guy and make them curious to hands on Linux. Many of us not feel Linux ...

  8. oracle pl/sql中的循环及if语句

    for循环 /* for循环打印1到10 */ set serveroutput on; declare begin .. loop dbms_output.put_line(i); end loop ...

  9. 在线生成PDF的网站-HTML 转 PDF 在线

    http://pdf.df5d.com/   (服务器问题,演示暂停了,但是 下面介绍的组件还是可以使用的) 将前面用到的wkhtmltopdf用一个服务器程序集成在一起,接受一个URL参数,在生成一 ...

  10. 基于Java的Arc Engine二次开发的环境的配置

    1.软件准备 ArcGIS for Desktop 10.2, Arc engine, jdk-7u60-windows-i586,Eclipse Mar2 2.软件的安装 2.1 ArcGIS fo ...