본문 바로가기
Programming/Socket

[C Socket Programing] servent 구조체(servent structure)

by whitele 2021. 6. 7.
반응형

Servent

servent 구조체를 이해하기 위해서는 소켓 프로그래밍 자체뿐만 아니라 네트워크 흐름에 대해서 알면 이해가 쉽다.      처음 봤을 때는 이해가 되지 않았으나 방화벽등 네트워크 장비를 만지다 보니 이해가 되었다. getservent(), getservbyname(), getservbyport() 등과 같은 함수와 같이 쓰이며 주로 /etc/services의 정보를 읽어 사용한다. DNS를 알아내거나 서비스(포트 주소) 자체를 이용하기 위해 사용한다.

Servent 구조체

struct servent{
	char *s_name;
	char **s_aliases;
	int s_port;
	char *s_proto;
}

servent구조체는 이와 같이 정의되어 있다.

s_name : 서비스 이름, 포트명

s_aliases : 서비스의 별병 리스트

s_port : 서비스가 이용하는 포트

s_proto : 서비스가 사용하는 프로토콜

 netdb.h 헤더 파일에 정의되어 있으며 관련 함수로는 getservent(), getservbyname(), getservbyport(), setservent, endservent()이 있다. 사용하는 서비스에 대한 정보가 담겨있는 구조체이다. 보통 포트를 사용하기 위해 이 함수와 구조체가 쓰이며 잘 알려진 포트 주소와 달리 그 이외의 포트를(서비스) 하기 위해 활용된다. 서비스는  포트와 거의 비슷한 의미이다.

728x90
반응형

댓글