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 檔案。