在Linux下有许多网络服务器在运行,像常用的telnet、ftp等,它们处于监听状态,等待用户的连接请求。我们用命令netstat -a可查看到那些处于listen状态的服务器。这些服务器在没有连接请求时,处于睡眠状态,当有连接请求时,便由“网络守护进程”激活,我们可进行正常网络业务操作。“网络守护进程”具有如此大的威力,它是什么呢?其实它是一个在后台运行、但不受任何终端控制的网络服务器进程。在Linux下,它就是xinetd。它有两个最大的优点:一是配置简单方便,编码量少;二是进程数目少,节省资源,管理容易。下面,我用一个简便的方法进行配置与编码:
1、增加监听端口。在文件/etc/services的最后增加如下一行内容:
xjq 8090/tcp
2、配置xinetd文件。在目录/etc/xinetd.d增加一个文件,文件名为xjq,内容如下:
| service xjq { flags =REUSE socket ytpe =stream wait =no user =root server =/etc/xjqd log_on_failure +=USERID } |
3、编写服务器程序。服务器程序源代码如下:
| #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> main() { int sock; struct sockaddr_in cli; char buf[1024]; int len; sock=0; len=sizeof(cli); getpeername(sock,&cli,&len); read(sock,buf,1024); sprintf(buf,"Return: OK ! You success !"); write(sock,buf,strlen(buf)); close(sock); } |
录入完毕后,用如下格式编译为网络守护进程可调用的程序。
cc t.c -0 /etc/xjqd
作完以上工作后,重新启动计算机。开机后,你可执行telnet 127.0.0.1 8090回车,然后任意输入一字串,回车是否看到你的大作了。如果你有兴趣,还可以将上述服务器程序稍做修改,限制某些主机登录到你的机器的8090端口若悬河。你是否受到一点启发,可以通过修改端口或IP地址等信息,作一个简易的防火墙程序,还可以结合系统队列做其它网络工程项目。
博客介绍了在Linux系统下的配置操作,包括在/etc/services文件增加监听端口,在/etc/xinetd.d目录配置xinetd文件,编写服务器程序并编译。完成操作重启计算机后可进行测试。此外,还提到修改程序可开发简易防火墙,结合系统队列开展网络工程项目。

2258

被折叠的 条评论
为什么被折叠?



