반응형
struct servent *getservbyname(const char *name, const char *proto);
getservbyname() 함수는 /etc/services에서 프로토콜 proto을 사용하며 서비스 name과 일치하는 라인에 해당하는 servent 구조체를 반환한다.
servent 구조체는 다음처럼 <netdb.h>에 정의되어 있다
struct servent {
char *s_name; /* 공식적인 서비스 이름 */
char **s_aliases; /* 별칭 리스트 */
int s_port; /* 포트 번호 */
char *s_proto; /* 사용하는 프로토콜 */
}
int GetPort(char *sPort)
{
struct servent *sp;
sp = getservbyname(sPort, "tcp");
if (sp == NULL) {
return (atoi(sPort));
}
else {
return (ntohs(sp->s_port));
}
}
반응형