本文主要是介绍在Linux下轻松实现网络服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在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下轻松实现网络服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!