unix网络编程环境搭建
unix网络编程环境搭建
1.点击下载源代码
可以通过下列官网中的源代码目录下载最新代码:
http://www.unpbook.com/src.html
2.解压文件
- tar -xzvf upv13e.tar.gz
3.上传至阿里云
本人本地已经配置好,这次实验是将环境搭建至云服务器中。
- scp -r unpv13e root@120.76.140.119:/root/program/unp
- // -r 上传文件夹
4.编译文件
- cd unpv13e
- chmod a+x configure //非root用户需要赋予可执行能力
- ./configure
- cd lib //进入lib目录并且编译 此为编译库文件
- make
- cd libfree //进入libfree目录并且编译
- make
libfree编译会出现下列问题:
- inet_ntop.c: In function ‘inet_ntop’:
- inet_ntop.c:60:9: error: argument ‘size’ doesn’t match prototype
- size_t size;
- ^
- In file included from inet_ntop.c:27:0:
- /usr/include/arpa/inet.h:64:20: error: prototype declaration
- extern const char *inet_ntop (int __af, const void *__restrict __cp,
- ^
- <builtin>: recipe for target 'inet_ntop.o' failed
- 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中加入如下代码即可:(插入到所有头文件之后)
- #define size_t socklen_t
此时make就能成功。
5.测试introduction实例
1.使用make命令进行测试
- cd intro
- make daytimetcpsrv
- make daytimetcpcli
- //测试结果
- ./daytimetcpsrv
- ./daytimetcpcli 127.0.0.1
- Sat May 6 21:35:10 2017
2.使用gcc编译进行测试
- //拷贝libunp.a到库文件夹目录/usr/lib,便于使用-lunp命令
- cp libunp.a /usr/lib
- //修改头文件unp.h,并将unp.h和config.h拷贝到/usr/include
- cp /lib/unp.h /usr/include
- cp config.h /usr/include
- //由于config.h与unp.h在同一个目录夹下
- vim /usr/include/unp.h
- //修改include "../config.h"成“config.h"
编译测试代码
- cd ./intro
- gcc daytimetcpcli.c -o daytimetcpcli -lunp
- gcc daytimetcpsrv.c -o daytimetcpsrv -lunp
- ./daytimetcpsrv
- ./daytimetcpcli 127.0.0.1
- Sat May 6 21:35:10 2017
-lworld表示在上面的lib的路径中寻找libworld.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)
6.如果需要关闭服务器程序,需要使用下面方法
- netstat -anp |grep daytimetcpsrv //具体含义使用--help查看,找到pidnum
- kill -9 pidnum
unix网络编程环境搭建的更多相关文章
- UNIX网络编程 环境搭建
配置好动态链接库或者静态链接库 1,下载UNIX网络编程书的头文件及示例源码unpv13e 2 按照readme来编译 Execute the following from the src/ d ...
- 记录一次配置unix网络编程环境的过程和遇到的问题
记录一次搭建unix网络编程环境过程中遇到的问题和总结 计算机环境虚拟机 linuxmint-18-xfce-64bit 1.打开unix网络编程.iso 把目录下的文件复制到某一目录,修改权限,可命 ...
- ubuntu14.04下unix网络编程环境的配置
建议 unpv13e/README看一下,忽略一下内容 ===================================================================== 操作 ...
- unix网络编程环境配置程序运行
1 查看ubuntu版本 cat /etc/issue 2 查看版本 cat /proc/version 3 下载 你可以通过其他方式下载 这里下载好了 文件名为unpv13e 4 开始配置 (1)c ...
- ubuntu14.04下unix网络编程 环境的配置
在ubuntu下 首先:在unpv13e文件加下 ./configure cd lib make cd ../libfree make cd ../liggai make cd .. vim lib/ ...
- 【转】Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)
下面开始用简单但典型的客户端和服务器端程序说明如何进行网络编程.这一小节讲的是客户端,一个用来连接并读取服务器发送来的时间的客户端. 这里涉及到了编写代码,因此要 搭建unix网络编程环境 unix系 ...
- 【UNIX网络编程第三版】阅读笔记(一):代码环境搭建
粗略的阅读过<TCP/IP详解>和<计算机网络(第五版)>后,开始啃这本<UNIX网络编程卷一:套接字联网API>,目前linux下的编程不算太了解,在阅读的过程中 ...
- 《UNIX网络编程 卷1》之"学习环境搭建"(CentOS 7)
<UNIX网络编程 卷1>的源码可以从www.unpbook.com下载得到.解压之后的目录为unpv13e. 详细步骤 编译 进入unpv13e目录,按如下步骤编译: ./configu ...
- Unix NetWork Programming(unix环境编程)——环境搭建(解决unp.h等源码编译问题)
此配置实例亲测成功,共勉,有问题大家留言. 环境:VMware 10 + unbuntu 14.04 为了unix进行网络编程,编程第一个unix程序时遇到的问题,不能包含unp.h文件,这个感觉和a ...
随机推荐
- 改变UITableView选中行高亮的颜色
UIView *backView = [[UIView alloc] initWithFrame:self.contentView.frame]; backView.backgroundColor = ...
- 2017-12-30-如何彻底清除现存GIT仓库的大量提交历史
layout: post title: 2017-12-30-如何彻底清除现存GIT仓库的大量提交历史 key: 20171230 tags: GIT 版本管理 问答 modify_date: 201 ...
- Zabbix3.4部署
Zabbix简介 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活 ...
- C#面向对象方式设置、读取应用配置
关注点: 1.用面向对象方式的方式(get,set)访问和设置配置项 2.“CallerMemberName”在.net 4以下的变通方式 最后一周了,大伙都进入过年模式了.身还在,心已远.最近事情不 ...
- debug时ClassNotFound可能出现的原因
自我总结,欢迎拍砖! 目的:总结ClassNotFound可能出现的原因,方便以后定位该类问题. 原因:当项目中加了新类,debug或run时,报classnotfound,说明没有找到该类的clas ...
- win8设置自动关机
运行中输入 shutdown -S -T 3600 表示1个小时后关机,单位是秒
- hexo 博客支持PWA和压缩博文
目标网站 https://blog.rmiao.top/ PWA yarn add hexo-offline 然后在root config.yml里新增 # offline config passed ...
- Django的ORM实现数据库事务操作
在Django中实现数据库的事务操作 在学习MySQL数据库时,MySQL数据库是支持原子操作的. 什么是数据库的原子操作呢??打个比方,一个消费者在一个商户里刷信用卡消费. 交易正常时,银行在消费者 ...
- Django的admin.py注册流程
通常创建一个Django项目的时候,在Django的配置文件settings.py中,都会有下面的这段配置: INSTALLED_APPS = [ 'django.contrib.admin', 'd ...
- iOS-PYSearch 完美搜索页
APP搜索页基本上是少不了的,热门搜索.搜索记录等:这里推荐一个大牛ko1o写的:PYSearch,他还有一个不错的图片浏览开源:PYPhotoBrowser:这个也不错,感兴趣的可以了解下:下面说下 ...