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

  《UNIX网络编程 卷1》的源码可以从www.unpbook.com下载得到。解压之后的目录为unpv13e。

详细步骤

编译

  进入unpv13e目录,按如下步骤编译:

 1 ./configure 
 2 
 3 cd lib 
 4 make // 可能遇到问题:redefinition of ‘struct in_pktinfo’
 5 
 6 cd ../libfree 
 7 make 
 8   
 9 cd ../libroute
10 make //这一步可能会出错,可忽略,只是表示你的系统不支持 4.4BSD,并不影响对该书的学习
11   
12 cd ../libgai 
13 make 

  针对上边的问题‘redefinition of ‘struct in_pktinfo’,我们需要将unpv13e/key/unp.h及unpv13e/sctp/unp.h中的“struct in_pktinfo”结构体声明注释掉,因为它已经被包含在标准头文件bits/in.h中了。修改之后需要重新编译 。

  以上步骤会生成一个静态库libunp.a。

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

1 cd ..   //回到 unpv13e 目录 
2 sudo cp libunp.a /usr/lib 
3 sudo cp libunp.a /usr/lib64 

修改unpv13e/lib/unp.h并将其和config.h拷贝到/usr/include中

1 vim lib/unp.h //将 unp.h 中#include "../config.h"修改为#include "config.h" 
2 sudo cp lib/unp.h /usr/include 
3 sudo cp config.h /usr/include 

运行示例(unpv13e/intro/daytimetcpcli.c)

  1)编译时必须加上静态链接库:-l 参数加上 libunp.a  去掉lib和后面的.a。最后得到参数-lunp

1 cd ./intro 
2 gcc daytimetcpcli.c -o daytimetcpcli -lunp 

  2)测试上面生成的可执行文件获取本机当前日期:

1 ./daytimetcpcli 127.0.0.1

  在进行测试时会出现以下错误:

1 connect error:Connection refused

  3)该错误表示 daytime 服务程序没开,可通过  xinetd来实现对服务连接请求的控制。以下通过 xinetd 开启 daytime 服务程序。

1 sudo cd /etc/xinetd.d/
2 sudo vim daytime

  如果xinetd.d文件夹是空的,则需要先安装xinetd服务:

1 sudo yum install xinetd.x86_64

  将 daytime-stream 和 daytime-dgram 两个文件中的 disable = yes 修改成 disable = no,并保存退出,然后重启 xinetd:

1 service xinetd restart

  4)再次测试该例子,能成功显示本机时间:

1 ./daytimetcpcli 127.0.0.1
2 22 JUN 2015 15:20:03 CST

参考资料

  《网络编程》关于 UNIX网络编程 卷1 的 unp.h 和源码编译问题

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

  CentOS开启daytime服务器

 

转载于:https://www.cnblogs.com/xiehongfeng100/p/4593337.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CentOS 7是一款基于Linux的操作系统,用于服务器和桌面应用。它具有良好的稳定性、可靠性和安全性,因此在企业和个人使用中广泛受到青睐。搭建基础环境主要包括安装、配置和管理各种软件和服务,如Apache、MySQL、PHP、SSH等。此外,还需要了解和掌握Linux常用操作命令和文件系统基本知识,以保证系统的正常运行和安全。 ### 回答2: Linux是一种开源的操作系统,因为其稳定性、安全性、高效性和灵活性等特点,被广泛应用于各种软件开发、服务器管理、数据分析等领域。在Linux中,CentOS是一种比较常见的版本之一,为了使用CentOS,我们需要对基础环境进行搭建,下面是对CentOS7基础环境搭建的简单介绍。 1. 下载CentOS 7的ISO镜像文件 在网站上下载CentOS7的ISO镜像文件,下载后可以刻录到光盘或者U盘上安装。也可以直接使用虚拟机软件进行安装。 2. 安装CentOS 7 CentOS 7安装时,需要注意选择相应的软件包,包括Minimal(最小化安装)和Server with GUI(包含图形界面的服务器),可以根据自己的需求来选择。 3. 设置网络 配置CentOS7的网络可以使用命令行或者图形界面进行配置,具体方法如下: ① 命令行方式:使用ifconfig命令或ip addr命令设置网络信息; ② 图形界面方式:在设置中找到网络,然后进行设置。 4. 更新系统 yum update可以更新系统的软件包。 5. 安装常用软件 安装一些常用的软件,例如: vim(文本编辑器), gcc(编译工具), cron(定时任务), wget(下载工具)等常用软件可以通过yum install来进行安装。 6. 安装LAMP环境 LAMP环境包括Linux、Apache、MySQL和PHP,可以通过yum命令来安装。 7. 配置防火墙 CentOS 7.0 默认开启了防火墙,在对服务器进行访问时防火墙可能会限制请求,可以使用firewalld来进行配置。 以上是对CentOS7基础环境搭建的简单介绍,了解这些方面的知识可以方便我们更好地使用CentOS,提高Linux的运用能力。 ### 回答3: CentOS是基于Linux内核的免费和开源服务器操作系统,它是一个强大而又稳定的操作系统,由于它的稳定性、可靠性和灵活性,在服务器领域被广泛使用。在CentOS7中,主要采用了systemd来管理系统服务,通过systemd可以更方便地管理和控制系统。 以下是CentOS7基础环境搭建的步骤: 一、安装CentOS7系统 首先,我们需要下载CentOS 7的安装镜像文件,然后可以使用U盘或者DVD刻录工具将安装镜像刻录到U盘或者DVD上。然后,我们需要在计算机中将U盘或DVD插入并启动计算机。如果计算机已经启动,可以将U盘或DVD插入,并重新启动计算机来进入安装界面。 在安装界面中,按照提示进行设置,如选择安装位置、设置密码、安装软件包等。安装完成后,需要在启动时选择CentOS 7来启动。 二、安装必要的软件 安装一些旨在提高系统性能和功能的基本软件是基础环境的基本部分。这些软件包括:net-tools、vim、telnet、nmap等。可以通过以下命令来安装这些软件包: yum install net-tools yum install vim yum install telnet yum install nmap 安装完成后,可以进入vim来编辑文件,使用telnet测试服务器是否正常连接,使用nmap进行网络扫描等操作。 三、安装更新软件包 安装基本软件之后,可以使用以下命令来更新系统的软件包,以确保所有的软件包都是最新的: yum update 四、安装配置防火墙 CentOS7中默认安装了firewalld防火墙。在开启firewalld防火墙之后,需要在防火墙中添加允许的端口,否则可能会阻止某些服务(如SSH)的访问。 可以使用以下命令来启动并配置防火墙: systemctl start firewalld.service #启动防火墙 systemctl enable firewalld.service #开机自启动防火墙 firewall-cmd --zone=public --add-port=80/tcp --permanent #添加端口80 firewall-cmd --zone=public --add-port=22/tcp --permanent #添加端口22 firewall-cmd --reload #重启防火墙 以上命令将80端口和22端口添加到防火墙中,并且重启防火墙以使更改生效。 五、设置NTP同步时间 在使用计算机时,时间同步是非常重要的。我们可以使用NTP(网络时间协议)来同步时间。CentOS7默认安装了chrony,它是一种轻量级的NTP客户端。使用以下命令可以启动chrony,并将其设置为自动同步时间: systemctl start chronyd.service #启动chrony systemctl enable chronyd.service #开机自启动chrony 六、设置SELinux CentOS7默认启用的SELinux是一种安全加固功能,它有助于保护系统。需要在nic慎重考虑后进行禁用或更改。如果确定要禁用,请使用以下命令: vi /etc/selinux/config #编辑SELinux设置文件 SELINUX=disabled #禁用SELinux systemctl stop firewalld.service #停止防火墙服务(由于SELinux启用会影响防火墙) 以上是CentOS7基础环境的搭建步骤。长期以来,CentOS7已经成为了许多人的首选操作系统,因为它稳定、可靠、安全。通过这些基础环境,用户可以更方便地提高系统的性能和功能,并为后续的安装和配置打下基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值