C 伯克利插座&x27;被动套接字端口基意义
我试图通过跟踪代码来理解被动套接字 我发现下面的代码C 伯克利插座&x27;被动套接字端口基意义,c,sockets,networking,network-programming,berkeley-sockets,C,Sockets,Networking,Network Programming,Berkeley Sockets,我试图通过跟踪代码来理解被动套接字 我发现下面的代码 /* Map service name to port number */ if(pse = getservbyname(service, protocol)){ sin.sin_port = htons(ntohs((u_short)pse->s_port) + portbase); } else if((sin.sin_port = htons((u_short)atoi(service))) == 0){ err
/* Map service name to port number */
if(pse = getservbyname(service, protocol)){
sin.sin_port = htons(ntohs((u_short)pse->s_port) + portbase);
}
else if((sin.sin_port = htons((u_short)atoi(service))) == 0){
errexit("can't get \"%s\" service entry\n", service);
}
我对hton(ntohs((u_短)pse->s_port)+portbase有一些问题代码>
什么是portbase,我找到了注释u\u short portbase=0;/*端口基础,用于非根服务器*/
,但仍然知道它的含义吗
我在谷歌上搜索了“被动套接字端口库”,但找不到有用的信息
Thx提前。1024以下的端口是系统端口,需要超级用户权限才能访问(即root)。因此,当以非root用户身份运行此程序时,您可能希望重新映射该端口号,使其从0开始。e、 g.从端口1024开始,超级用户限制区内不会有任何端口(例如,我们众所周知的端口80现在将是1104)。你可以选择在任何地方绘制这些地图
注释是免费的:/*端口基,对于非根服务器*/
,再加上此变量从未在该文件中的任何位置设置。只有永远读不完。因此,在使用此C库时,您可以在调用任何函数之前自由设置端口基,以便重新映射端口