Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 伯克利插座&x27;被动套接字端口基意义_C_Sockets_Networking_Network Programming_Berkeley Sockets - Fatal编程技术网

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库时,您可以在调用任何函数之前自由设置端口基,以便重新映射端口