是经过socket接口来进行的。是一种文件描述符。socket也有一个类似于翻开文件的函数调用,该函数回来一个整型的socket描述符,随后的衔接树立、数据传输等操作都是经过socket来完成的。
(1)流式socket (SOCK_STREAM)流式套接字供给较为牢靠的、面向衔接的通讯流;它运用TCP协议,来确保了数据传输的正确性和次序性。
(2)数据报socket(SOCK_DGRAM)数据报套接字界说了一种无衔接的服务,数据经过彼此独立的报文进行传输,是无序的,而且不确保是牢靠、无差错的。它运用数据报协议UDP
(3)原始socket原始套接字答应对底层协议如IP或ICMP进行直接拜访,它功能强大但运用较为不方便,大多数都用在一些协议的开发。
计算机数据存储有两种字节优先次序:高位字节优先(大端方式)和低位字节优先(小段方式)。Internet上以高位字节优先的次序在网络传输,而PC机一般会用小端方式,因而有时候需要对两个字节存储优先次序进行转化。用到了4个函数:htons()、ntohs()、htonl()和ntohl()。h代表host,n代表network,s代表short,l代表long。一般16位的IP端口号用s,而IP地址用l。
IP地址一般由数字加点(192.168.0.1)的方式表明,而在struct in_addr中运用的IP地址是由32位整数表明,为了转化可以正常的运用下面三个函数:
一般,人们在运用的过程中不肯回忆冗长的IP地址,因而,运用主机名是很好的挑选。gethostbyname()将主机名转化为IP地址,gethostbyaddr()则是逆操作,将IP地址转化为主机名。它们都涉及到一个hostent的结构体,如下: