当前位置: 技术问答>linux和unix
使用getservbyname()无法获得服务的端口号,怎么回事?
来源: 互联网 发布时间:2016-10-30
本文导语: 我是LINUX初学者,最近在做SOCKET编程,在/etc/services中添加了如下内容: controlinput 2001/udp添加了一个服务,UDP,端口2001; 在程序中: struct servent *ControlInput; ControlInput=getservbyname("controlinput","udp"); printf("serv name i...
我是LINUX初学者,最近在做SOCKET编程,在/etc/services中添加了如下内容:
controlinput 2001/udp添加了一个服务,UDP,端口2001;
在程序中:
struct servent *ControlInput;
ControlInput=getservbyname("controlinput","udp");
printf("serv name is:%sn",ControlInput->s_name);
printf("serv type is:%sn",ControlInput->s_proto);
printf("the port:%dn",ControlInput->s_port);
打印出来是
serv name is:controlinput
serv type is:udp
the port:53511
不知道是怎么回事,s_port不是应该是2001吗?
controlinput 2001/udp添加了一个服务,UDP,端口2001;
在程序中:
struct servent *ControlInput;
ControlInput=getservbyname("controlinput","udp");
printf("serv name is:%sn",ControlInput->s_name);
printf("serv type is:%sn",ControlInput->s_proto);
printf("the port:%dn",ControlInput->s_port);
打印出来是
serv name is:controlinput
serv type is:udp
the port:53511
不知道是怎么回事,s_port不是应该是2001吗?
|
The servent structure is defined in as follows:
struct servent {
char *s_name; /* official service name */
char **s_aliases; /* alias list */
int s_port; /* port number */
char *s_proto; /* protocol to use */
}
不要用系统的servent。字节写一个吧。
|
自己写一个。
|
其它字段都对哈,文件中只有2001这一行吧?