2012. 5. 6. 11:28


@ 네트워크 프로그래램을 구현하는 두가지 방법은 하나는 독립적인 소켓프로그램을 짜는 방법이있고 두번째는 Xinetd 데몬을 이용하여 네트워크에 연결시키는 방법이 있다.


필자는 전자의 경우만을 구축하여 사용해봤으나 Xinetd를 이용하면 훨씬 편리한 구축 방법이 이뤄지는 것 같다.

예를들어 다음과 같은 코드가 있다고 가정하자.



 
int main(){

   char buffer[100]="aaaaaaaa";

   printf("%s\n",buffer);

}


위와같으 간단한 코드는 로컬에서 동작하는 프로그램으로 보인다.

하지만 이 프로그램을 Xinetd 로 등록하게 된다면 상황은 다르다. 




#gcc -o test test.c

#cd /etc/xinetd.d

#cat > test


service test{

    flags = REUSE

    socket_type = stream

    wait = no

    user = guest

    server = /root/

    disable = no

}

#


위에서 service 오른쪽의 단어는 포트를 의미하는데 test 라는 포트는 존재하지 않으므로 /etc/services 파일에 설정을 해주어야한다. 



 
#vi /etc/services

test 22222/tcp

:wq!

#




위에는 22222의 tcp 포트로 만들어주었다. 그리고 xinetd를 재시작한다.




#/etc/rc.d/init.d/xinetd restart

 


접속을 테스트해보자


 #telnet localhost 222222

aaaaaaaa



정상적으로 출력 된다. 

Posted by k1rha