📄 14.htm
字号:
<TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>void endservent(void);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>endservent()用来关闭由getservent()所打开的文件。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>范例 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>参考getservent()。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋体 size=2><A name=linuxc268></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2><BR>getsockopt(取得socket状态) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>setsockopt<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>#include<sys/types.h><BR>#include<sys/socket.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>int getsockopt(int s,int level,int optname,void* optval,socklen_t* optlen);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>getsockopt()会将参数s所指定的socket状态返回。参数optname代表欲取得何种选项状态,而参数optval则指向欲保存结果的内存地址,参数optlen则为该空间的大小。参数level、optname请参考setsockopt()。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>成功则返回0,若有错误则返回-1,错误原因存于errno<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>错误代码 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>EBADF 参数s 并非合法的socket处理代码<BR>ENOTSOCK 参数s为一文件描述词,非socket<BR>ENOPROTOOPT 参数optname指定的选项不正确<BR>EFAULT 参数optval指针指向无法存取的内存空间<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>范例 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>#include<sys/types.h><BR>#include<sys/socket.h><BR>main()<BR>{<BR>int s,optval,optlen = sizeof(int);<BR>if((s = socket(AF_INET,SOCK_STREAM,0))<0) perror(“socket”);<BR>getsockopt(s,SOL_SOCKET,SO_TYPE,&optval,&optlen);<BR>printf(“optval = %d\n”,optval);<BR>close(s);}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>执行 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>optval = 1 /*SOCK_STREAM的定义正是此值*/<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋体 size=2><A name=linuxc269></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2><BR>htonl(将32位主机字符顺序转换成网络字符顺序) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>htons,ntohl,ntohs<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>#include<netinet/in.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>unsigned long int htonl(unsigned long int hostlong);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>htonl()用来将参数指定的32位hostlong 转换成网络字符顺序。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>返回对应的网络字符顺序。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>范例 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>参考getservbyport()或connect()。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋体 size=2><A name=linuxc270></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2><BR>htons(将16位主机字符顺序转换成网络字符顺序) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>htonl,ntohl,ntohs<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>#include<netinet/in.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>unsigned short int htons(unsigned short int hostshort);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>htons()用来将参数指定的16位hostshort转换成网络字符顺序。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>返回对应的网络字符顺序。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>范例 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>参考connect()。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋体 size=2><A name=linuxc271></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2><BR>inet_addr(将网络地址转成二进制的数字) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>inet_aton,inet_ntoa<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>#include<sys/socket.h><BR>#include<netinet/in.h><BR>#include<arpa/inet.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>unsigned long int inet_addr(const char *cp);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>inet_addr()用来将参数cp所指的网络地址字符串转换成网络所使用的二进制数字。网络地址字符串是以数字和点组成的字符串,例如:“163.13.132.68”。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>成功则返回对应的网络二进制的数字,失败返回-1。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋体 size=2><A name=linuxc272></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2><BR>inet_aton(将网络地址转成网络二进制的数字) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>inet_addr,inet_ntoa<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>#include<sys/scoket.h><BR>#include<netinet/in.h><BR>#include<arpa/inet.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>int inet_aton(const char * cp,struct in_addr *inp);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>inet_aton()用来将参数cp所指的网络地址字符串转换成网络使用的二进制的数字,然后存于参数inp所指的in_addr结构中。<BR>结构in_addr定义如下<BR>struct in_addr<BR>{<BR>unsigned long int s_addr;<BR>};<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>成功则返回非0值,失败则返回0。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋体 size=2><A name=linuxc273></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2><BR>inet_ntoa(将网络二进制的数字转换成网络地址) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>inet_addr,inet_aton<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD> <TD vAlign=top><FONT face=宋体 size=2>#include<sys/socket.h><BR>#include<netinet/in.h><BR>#include<arpa/inet.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -