1、建立连接 (1)、socket。socket函数类似于open,用来打开一个网络连接,如果打开成功则返回一个网络文件描述符(int类型),之后我们操作这个网络连接都可以通过这个网络文件描述符。 (2)、bind。把本地的IP地址和我们的socket绑定起来 (3)、listen。 监听 (4)、connect 。连接 2、表示IP地址相关数据结构 (1)、都定义在 netinet/in.h (2)、struct sockaddr,这个结构体是网络编程接口中用来表示一个IP地址的,注意这个IP地址是不区分IPv4和IPv6d。(或者说是兼容IPv4和IPv6)。 (3)、typedef uint32_t in_addr_t; 网络内部用来表示IP地址的类型 (4)、struct in_addr { in_addr_t s_addr; } (5)、struct sockaddr 这个结构体是Linux的网络编程接口中用来表示IP地址的标准结构体,bind、connect等函数中都需要这个结构体,这个结构体是兼容IPv4和IPv6的。在实际编程中这个结构体会被一个struct sockaddr_in或者一个structaddr_in6所填充。 (6)、struct sockaddr_in { _SOCKADDR_COMMON(sin_); in_port_t sin_port; struct in_addr sin_addr; unsigned char sin_zero[sizeof(struct sockaddr) - __SOCKADDR_COMMON_SIZE - sizeof (in_port_t) - sizeof (struct in_addr)]; } 3、辅助型函数 (1)、inet_aton、inet_addr、inet_ntoa (2)、inet_ntop(网络型参数转换为点分十进制)、inet_pton(点分十进制转换为网络型参数)
|