您的位置:首页 > 理论基础 > 计算机网络

《Unix NetWork Programming》(Unix网络编程)—环境搭建

2014-09-20 23:29 399 查看
1,安装编译器,为了齐全还是安装一下build-essential

[python] view
plaincopy

sudo apt-get install build-essential

2,下载本书的头文件及示例源码

点此下载unpv13e.tar.gz http://ishare.iask.sina.com.cn/f/13238521.html

3,解压unpv13e.tar.gz后进入目录查看README,然后可以按照里面提示操作,不过会遇到问题

第一步:在终端中进入upnv13e目录,然后执行代码:

[python] view
plaincopy

chmod u+x configure

./configure

第二步:进入lib目录下执行make:

[python] view
plaincopy

cd lib


make

第三步:建立基础类库:

[python] view
plaincopy

cd ../libfree # continue building the basic library

make

第四步:编译函数库:

[python] view
plaincopy

cd ../libgai # the getaddrinfo() and getnameinfo() functions

make

4,将生成的libunp.a静态库复制到/usr/lib/和/usr/lib64/中。

[html] view
plaincopy

cd .. //回到unpv12e目录

[html] view
plaincopy

sudo cp libunp.a /usr/lib

sudo cp libunp.a /usr/lib64

5,修改unp.h并将其和config.h拷贝到/usr/include中,为了以后include方便

[python] view
plaincopy

gedit lib/unp.h //将unp.h中#include "../config.h"修改为#include "config.h"

[python] view
plaincopy

sudo cp lib/unp.h /usr/include
sudo cp config.h /usr/include

6,编译源代码

[python] view
plaincopy

cd ./intro

gcc daytimetcpcli.c -o daytimetcpcli -lunp

然后发现报错:

daytimetcpcli.c:1:17: 致命错误: /usr/include/unp.h:权限不够

解决方法:
1.把 /usr/include/unp.h文件删掉:

sudo rm  /usr/include/unp.h

2.进入unpv13e解压目录下的lib文件里面找到unp.h,然后右键查看属性,选中权限,修改它的权限为读写,或只读
3.重新将unp.h文件拷贝一次:

sudo cp lib/unp.h /usr/include

ok,按照第6步的命令重新编译,pass,成功了

跟普通的编译不一样的是要在最后加上刚才那个链接库,-l参数加上刚才那个libunp.a去掉lib和后面的.a。最后得到参数-lunp。

7,编写程序

以后编写完的程序安装6中的代码编译就行了,然后代码可以完全跟书上的一样。代码编辑器或IDE等就按自己的喜好来选了。这个网上很多c语言编程环境搭建教程。

我选择命令行用vim编写程序,主要为了锻炼一下自己。我的vim配置如下:http://lingshaohuprose.blog.163.com/blog/static/1695797822012271954678/

最后运行:./daytimetcpcli 127.0.0.1如下

acer@ubuntu:~/jwt/unpv13e/intro$ ./daytimetcpcli127.0.0.1

connect error: Connection refused

发现报错:connect error: Connection refused

这种情况说明服务器没有启动daytime服务!那Ubuntu如何启动,daytime服务呢?




Ubuntu启动daytime服务

1. sudo apt-get install xinetd

2. sudo vi /etc/xinetd.d/daytime, change disable = yes to no

3. sudo /etc/init.d/xinetd restart

在运行 ./daytimetcpcli 127.0.0.1

出现结果!!

from: http://blog.csdn.net/a649518776/article/details/6724121
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: