getservbyname和getservbyport】的更多相关文章

名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr在主机名字与IPv4地址之间进行转换.getservbyname和getservbyport在服务器名字和端口号之间进行转换.还有两个协议无关的转换函数:getaddrinfo和getnameinfo,分别用于主机名字和IP地址之间以及服务名字和端口之间的转换. 1.gethostbyname函数 通过传入域名或者主机名,返回一个指向hostent结构的指针,该结构中含有所查找主机的所有IPv4地址.这个函数的…
一.getservbyname函数原型 #include <netdb.h> struct servent *getservbyname(const char *servname, const char *protoname); 返回:成功为非空指针,否则为NULL且设置h_errno 二.servent结构 struct servent { char *s_name; char **s_aliases; int s_port; char *s_proto; }; 三.getservbypor…
通常说函数返回某个错误值,实际上是函数返回值为-1,而全局变量errno被置为指定的常值(即称函数返回这个错误值). exit终止进程,Unix在一个进程终止时总是关闭该进程所有打开的描述符. TCP三次握手完毕,accept返回,其返回值是一个称为已连接描述符(connected descriptor)的新描述符.调用close关闭与客户的连接. 套接字API. TCP状态转移图,11种状态. MSS,maximum segment size,最大分节大小.通常客户端主动打开时发送SYN的同时…
htons.ntohs.htonl和ntohl函数 Linux提供了4个函数来完毕主机字节序和网络字节序之间的转换 #include <netinet/in.h> uint16_t htons(uint16_t host16bitvalue); uint32_t htonl(uint32_t host32bitvalue); uint16_t ntohs(uint16_t net16bitvalue); uint32_t ntohl(uint32_t net32bitvalue); inet_…
sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arpa/inet.h:提供IP地址转换函数 netdb.h:提供设置及获取域名的函数 sys/ioctl.h:提供对I/O控制的函数 sys/poll.h:提供socket等待测试机制的函数 其他在网络程序中常见的头文件 unistd.h:提供通用的文件.目录.程序及进程操作的函数 errno.h:提供错误号errno的定义,用于错误处理…
accept(接受socket连线) 相关函数 socket,bind,listen,connect 表头文件 #include<sys/types.h> #include<sys/socket.h> 定义函数 int accept(int s,struct sockaddr * addr,int * addrlen); 函数说明 accept()用来接受参数s的socket连线.参数s的socket必需先经bind().listen()函数处理过,当有连线进来时 accept()…
一.用数值表示socket地址&用名字表示socket地址(socket地址==>IP地址和端口号) 1. 用数值表示socket地址不便于记忆,也不便于扩展(比如从IPv4转移到IPv6) 2. 用名字表示socket地址意味着用主机名代替IP地址,用服务名称代替端口号 我们可以用主机名来访问一台机器,而避免直接使用其IP地址.同样,我们用服务名称来代替端口号. 所以,下面两条telnet命令具有完全相同的作用: telnet telnet  localhost  www 二.实现主机名&…
概述 在名字和数值地址间进行转换的函数: gethostbyname和gethostbyaddr:在主机名字与IPv4地址之间进行转换.仅仅支持IPv4. getservbyname和getservbyport:在服务名字和端口号之间进行转换. getaddrinfo和getnameinfo:用于主机名字和IP地址之间以及服务名字和端口号之间的转换.(这两个函数是协议无关的) 域名系统 域名系统(Domain Name System,简称DNS)主要用于主机名字和IP地址之间的映射. 资源记录…
第5章 Linux网络编程基础 5.1 socket地址与API 一.理解字节序 主机字节序一般为小端字节序.网络字节序一般为大端字节序.当格式化的数据在两台使用了不同字节序的主机之间直接传递时,接收端要根据自身采用的字节序决定是否对其接收到的数据进行转换. 在Linux上提供了4个函数来完成主机字节序和网络字节序之间的转换. #include<netinet/in.h> unsigned long int htonl(unsigned long int hostlong); unsigned…
域名系统 域名系统(Domain Name System,DNS)主要用于主机名字与IP地址之间的映射. 主机名既可以是一个简单得名字,如solaris,也可以是一个全限定域名,如solaris.unpbook.com. 资源记录 DNS中的条目称为资源记录(resource record,RR) A记录把一个主机名映射成一个32位的IPv4的地址. AAAA记录把一个主机名映射成一个128位的IPv6地址. PTR记录把IP地址映射成主机名. MX记录把一个主机指定作为主机的“邮件交换器(ma…