Inetd
Internet超级服务器
可以使用inetd来设计网路程序,使我们不用考虑复杂的socket编程。只要设计好通讯协定(需要什么样的输入什么样的输出)就好了。所需要的技巧,仅仅是文字分析技巧。
利用inetd来开发网路应用步骤如下:
- 设计好本地运行的程序(hello:是一个hello world!程序)
- 配置inetd
/etc/services: 配置程序使用的端口
eg: hello 20001/tcp
其意义为hello这项服务是在端口20001、是一个TCP连接。
/etc/inetd.conf: 配置连接上面的服务时要执行的程序
eg: hello stream tcp nowait robin /home/robin/Desktop/inetd/hello
各个参数的意义为:
<service_name><sock_type><proto><flags><user><server_path><args>
service_name 是需要在系统服务中存在的名称。
sock_type 有很多种,大多用的是stream/dgram。
proto 一般用tcp/udp。
flags 有wait/nowait。
user 是您指定该程序要以那一个使用者来启动,这个例子中用的是root,如果有
安全性的考量,应该要改用nobody。一般来说,建议您用低权限的使用者,除非必要,不
开放root 使用权。
server_path 及args,这是您的服务程序的位置及您所想加入的叁数。 - 重启inetd
killall inetd
inetd - telnet连接
telnet localhost hello
这相当于你在本地调用远程主机上的程序。
输入输出在本地,运行在远程主机上。
通过Linux 系统提供的inetd 服务,我们可以方便的编写网络程序而从来不用去在乎那
些看起来高深难懂的套接字函数.你所需要做的只是写一个普通的读写标准输入输出的程
序,然后去配置一下系统inetd 的配置文件:/etc/services 文件和 /etc/inetd.conf 文件。