亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號(hào)

介紹守護(hù)進(jìn)程XINETD與SOCKET程序的含義1
2007-06-26   中國(guó)IT實(shí)驗(yàn)室

1.Xinetd提供被動(dòng)式的超級(jí)服務(wù)

  也就是服務(wù)程序是被使用端所啟動(dòng),平時(shí)則無(wú)須存在。例如,ftp, telnetd, pop3,imap, auth等等,這些服務(wù)沒(méi)有人使用時(shí),無(wú)須啟動(dòng)。此外,xinetd將socket轉(zhuǎn)換成stdin/stdout,因而使得網(wǎng)路服務(wù)程式設(shè)計(jì)大大簡(jiǎn)化,您可以只用printf及fgets便可完成處理很復(fù)雜的網(wǎng)路協(xié)定。

2.一個(gè)簡(jiǎn)單的服務(wù)程序 goodie

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

char *cmds[]={ 
"help", 
"say", 
"hello", 
"bye", 
"exit", 
NULL 
}; 

int getcmd(char *cmd) 
{ 
int n=0; 
while (cmds[n]!=NULL) { 
if (strncasecmp(cmd,cmds[n],strlen(cmds[n]))==0) return n; 
n++; 
} 
return -1; 
} 

void main(void) 
{ 
char buf[1024]; 
int ok; 

printf("Welcome to goodie service! "); 
fflush(stdout); 

ok=0; 
do { 
while (fgets(buf,1023,stdin)==NULL); 
switch (getcmd(buf)) { 
case -1: printf("Unknown command! "); break; 
case 0:
           printf("How may I help you, sir? ");
            int j=0;
           while(cmds[j++]!=NULL)printf(” %s\t\t“,cmds[j-1]);
           break; 
case 1: printf("I will say %s",&buf[3]); break; 
case 2: printf("How're you doing today? "); break; 
case 3: printf("Si ya, mate! "); ok=1; break; 
case 4: printf("Go ahead! "); ok=1; break; 
} 
fflush(stdout); 
} while (!ok); 

}

3.配置文件

在/etc/services 中加入如下項(xiàng)

goodie 12345/tcp

服務(wù)名是 goodie 服務(wù)端口是 12345 服務(wù)類型是 TCP

在/etc/xinetd.d目錄下新檢服務(wù)文件 goodie

輸入內(nèi)容:

service goodie
{
    socket_type=stream
    protocal      =tcp
    wait            =no
    server        = /{goodie dir}/goodir
    disable      =no #初始化為開(kāi)啟服務(wù)監(jiān)聽(tīng)
}

4.啟動(dòng)服務(wù)

先停止服務(wù)

killall xinetd

啟動(dòng)服務(wù)

/usr/sbin/xinetd -f /etc/xinetd.conf

5.開(kāi)啟終端連接

telnet localhost 12345

熱詞搜索:

上一篇:在Redhat AS4中加載NTFS分區(qū)的方法詳解
下一篇:介紹守護(hù)進(jìn)程XINETD與SOCKET程序的含義2

分享到: 收藏