一,配置
wget http://www.unpbook.com/unpv13e.tar.gz
cp unpv13e.tar.gz /home
cd /home
tar -xvf unpv13e.tar.gz
cd unpv13e/
./configure
make
cd lib
make
cd ../libfree/
make
vim inet_ntop.c
make
vim inet_ntop.c
make
cd ../libgai/
make
cd ..
sudo cp libunp.a /usr/lib
sudo cp libunp.a /usr/lib32
vim lib/unp.h
sudo cp lib/unp.h /usr/include/
sudo cp config.h /usr/include/
ls
cd inetd/
ls
make
ls
./daytimetcpsrv2 47.93.31.88
ls
history > 配置.txt
中途有保存文件要修改文件
可以宏替换
define size_t socklen_t
inet_ntop.c:61: error: argument 'size' doesn't match prototype
/usr/include/arpa/inet.h:153: error: prototype declaration
inet_ntop.c第61行 size_t size ->改成 socklen_t size)
测试代码
使用make命令进行测试
cd intro
make daytimetcpsrv
make daytimetcpcli
//测试结果
./daytimetcpsrv
./daytimetcpcli 127.0.0.1
Sat May 6 21:35:10 2017
使用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
静态库和动态
-l 是库名称
-L 是库的路径
-I 是头文件的路径