socket编程中的getservbyname参数中的name是固定的服务名还是可以自定义的?求解答
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后面的错误