热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【linux高级程序设计】(第十六章)网络服务器应用设计

xinetd服务介绍xinetd是Linux下的一个网络守候进程,用来统一管理网络负载不大的一组小型网路服务。一些小型的网络服务,比如时间,
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
#include

#include

#include

#include

#include

#include

#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(0, buff, strlen(buff)); //网络中,将0重定向到了socket文件描述符,向0写 相当于想socket写close(0);exit(0);
}

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

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

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

(4)重新启动网络服务

service xinetd restart

(5)运行 

telnet localhost 6666

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

 

转:https://www.cnblogs.com/dplearning/p/4710785.html



推荐阅读
author-avatar
幸福taishanvv_660
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有