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(点分十进制转换为网络型参数)
原文:https://www.cnblogs.com/jiangtongxue/p/11338995.html