socket编程中的getservbyname参数中的name是固定的服务名还是可以自定义的?求解答

tiny_red 2018-01-29 03:27:12
socket编程中的getservbyname参数中的name是固定的服务名还是可以自定义的?求解答
int main(int argc, char *argv[])
{
struct sockaddr_in fsin;
char *service = "daytime";//这里的daytime我改啦之后就会在getservbyname那里出错
SOCKET msock, ssock;
int alen;
WSADATA wsadata;
int QLEN;

switch(argc)
{
case 1:
break;
case 2:
service = argv[1];
break;
default:
errexit("usage:TCPdaytime[port]\n");
}

}//这是main函数里的一段

void TCPdaytimed(SOCKET fd)
{
char *pts;
time_t now;
(void)time(&now);
pts = "hello!\n";
(void)send(fd, pts, strlen(pts), 0);
(void)closesocket(fd);
}//这是accept后提供的服务

if(pse = getservbyname(service, transport))
sin.sin_port = (u_short)pse->s_port;
else if((sin.sin_port = htons((u_short)atoi(service)))==0)
errexit("can't get \"%s\" service entry\n", service);
//service参数改了之后提示else if后面的错误
...全文
280 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
heronism 2018-01-29
  • 打赏
  • 举报
回复
Linux下man getservbyname一切尽知,Windows的猜测应该类似。 The getservbyname() function returns a servent structure for the entry from the database that matches the service name using protocol proto. If proto is NULL, any proto- col will be matched. A connection is opened to the database if necessary. s_name The official name of the service. FILES /etc/services services database file

1,737

社区成员

发帖
与我相关
我的任务
社区描述
网络协议与配置相关内容讨论专区
网络协议网络安全tcp/ip 技术论坛(原bbs)
社区管理员
  • 网络协议与配置社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧