xinetd服务介绍

xinetd是Linux下的一个网络守候进程,用来统一管理网络负载不大的一组小型网路服务。

一些小型的网络服务,比如时间,telnet服务,不以守候进程出现,而是让xinetd服务以守候进程出现。如果某客户端发起连接,xinetd服务将接收该连接,创建新进程,根据请求信息决定执行具体的服务代码。

我的虚拟机上居然没有...先安装一下吧

sudo apt-get install xinetd

xinetd守候进程的配置文件, /etc/xinetd.conf 内容如下

/etc/xinetd.d 目录提供服务链接信息:

基于xinetd创建网络服务过程:

以一个时间服务器为例,在客户端发起连接后为其返回一个当前系统时间。

(1)编写源代码daytime_inetd.c 编译后放在/root/kzy/下面

#include<time.h>
#include<unistd.h>
#include<sys/types.h>
#include<signal.h>
#include<fcntl.h>
#include<sys/param.h>
#include<sys/syslog.h>
#define MAXLINE 4096
int main(int argc, char **argv)
{
socklen_t len;
struct sockaddr *cliaddr;
char buff[MAXLINE];
time_t ticks;
ticks = time(NULL); //获取当前时间值
snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks)); //转换为时间字符串
write(, buff, strlen(buff)); //网络中,将0重定向到了socket文件描述符,向0写 相当于想socket写
close();
exit();
}

(2)修改/添加启动配置  在/etc/xinetd.d/ 下添加一个文件名为daytime_inetd配置文件

service daytime_inetd
{
disable = no //标识xinetd守候进程支持此服务,设置yes将禁止
flags = REUSE
socket_type = stream //基于TCP的连接
wait = no
user = root //执行用户为root
server = /root/kzy/daytime_inetd //连接后运行代码位置
log_on_failure += USERID
}

(3)在/etc/services文件中为该服务指定应用端口。 注意不能与已经使用的端口冲突。这里用6666

(4)重新启动网络服务

service xinetd restart

(5)运行

telnet localhost 

郁闷,到这里出问题了。总是说连接不上,不懂????下面是出错信息

【linux高级程序设计】(第十六章)网络服务器应用设计的更多相关文章

  1. 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)

    第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...

  2. JavaScript高级程序设计:第六章

    第六章 面向对象的程序设计 一.理解对象 1.属性类型: ECMAScript中有两种属性:数据属性和访问器属性. (1)数据属性: 数据属性包含一个数据值的位置.在这个位置可以读取和写入值.数据属性 ...

  3. 读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图

    读书笔记 - js高级程序设计 - 第十三章 事件   canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好   有时候即使浏览器支持,操作系统如果缺缺 ...

  4. apue学习笔记(第十六章 网络IPC:套接字)

    本章将考察不同计算机(通过网络连接)上的进程相互通信的机制:网络进程间通信. 套接字描述符 正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字. 许多处理文件描述符函数(如read和writ ...

  5. linux高级管理第十二章--rsync

    实验部分 1.安装rsync 2.配置文件 3.配置密码 4.后续 5.为了测试,创建几个文件 配置实时同步 1.调整inotify内核参数 安装inotify-tools 测试同步 编写脚本 验证 ...

  6. 【linux高级程序设计】(第九章)进程间通信-管道 1

    Linux操作系统所支持的主要进程间的通信机制. 无名管道 PIPE cat test.txt| grep hello 上面这种管道,将一个命令的输出作为另一个命令的输入,而这种管道是临时的,命令执行 ...

  7. 《javascript高级程序设计》第六章 Object Creation VS Inheritance

    6.1 理解对象 6.1.1 属性类型 6.1.2 定义多个属性 6.1.3 读取属性的特性6.2 创建对象 6.2.1 工厂模式 6.2.2 构造函数模式 6.2.3 原型模式 6.2.4 组合使用 ...

  8. 《Javascript高级程序设计》第六章笔记整理

    一.创建对象的方法(6种) 1.工厂模式 即用函数来封装以特定接口创建对象的细节. function createPerson(name,age,job){ var o = new Object(); ...

  9. 鸟哥的Linux私房菜——第十六章:学习Shell Scripts

    视频链接:http://www.bilibili.com/video/av10565321/ 1. 什么是 Shell Script       (shell写的脚本)1.1 干嘛学习 shell s ...

  10. 《JavaScript高级程序设计》第六章【面向对象的程序设计】 包括对象、创建对象、继承

    一.理解对象 二.创建对象      1. 工厂模式      2. 构造函数模式      3. 原型模式      4. 组合使用构造函数模式和原型模式[使用最广泛]      5. 动态原型模式 ...

随机推荐

  1. Spring核心技术(十五)——BeanFactory

    BeanFactory是Spring IoC功能的潜在基础,但是现在BeanFactory一般仅仅用于直接集成第三方的框架,对于大多数的Spring用户来说,BeanFactory已经算是一个历史了. ...

  2. P1330 封锁阳光大学(染色问题)

    P1330 封锁阳光大学 题目描述 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街.河蟹看到欢快的曹,感到不爽.河蟹决定封锁阳光大学,不让曹刷街. 阳光大学的校园是一张由N个点构 ...

  3. H2数据库使用

    H2数据库使用 H2数据库介绍 H2的优势: 1.h2采用纯Java编写,因此不受平台的限制. 2.h2只有一个jar文件,十分适合作为嵌入式数据库试用. 3.性能和功能的优势 H2和各数据库特征比较 ...

  4. 宝石TD迷宫设计器

    说起宝石TD,能追溯到我上高二那会,算来是2005年. 所谓一款TD类的魔兽RPG,宝石TD可以算是达到了TD迷宫的巅峰,三进三出更是别具匠心. 这个迷宫设计器是去年在焦作做的,只完成了迷宫设计功能, ...

  5. SQLite3中dos命令下退出"...>"状态的方法

    今天在看Android中SQLite,跟着书上一步一步走,在dos中敲命令时候不小心敲错了,命令行就会突然变成”…>”这样的,本来是”sqlite>”的,然后接下来后面的就没办法在继续操作 ...

  6. 《Android权威编程指南(The Big Nerd Ranch Guide)(第二版)》12.4挑战练习

    本书第12章是讲解Dialog.12.4挑战练习是在CriminalIntent项目中,再增加一个TimePickerFragment的对话框fragment.通过在CrimeFragment用户界面 ...

  7. jenkins shell脚本构建项目--留

    1.echo `date` "doing  compling  . . . " if [ "$RELEASE" == "false" ]; ...

  8. python_ 运算符与分支结构

    # 运算符与分支结构 ### 运算符 - 赋值运算符 - 用'='表示,左边只能是变量. - 算术运算符 - +.-.*:加.减.乘 - /:除法运算,结果是浮点数 - //:除法运算,结果是整数 - ...

  9. Python全栈工程师(exercises)

    # # 练习: # # 1. 用map函数求: # # 1**3 + 2**3 + 3 ** 3 + .... 9**3 的和 def add_(x): return x ** 3 print(sum ...

  10. ironic baremetal node status

    参考: https://docs.openstack.org/ironic/latest/contributor/states.html https://docs.openstack.org/iron ...