一、域套接字地址(struct sockaddr_un) 域套接字是在同一计算机的不同进程中进行通信,但是不采用IP地址和端口进行通信。内核提供了此结构体,用于为域套接字绑定文件名来绑定地址,从而实现不同域套接字之间的通信 #include <sys/un.h> //Linux和Solaris中: structsockaddr_un { sa_family_tsun_family;/*AF_...
struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。 下面是struct sockaddr_in中用到两个数据类型,具体...
struct sockaddr_un { sa_family_t sun_family; /* AF_UNIX */ char sun_path[UNIX_PATH_MAX]; /* pathname */ }; 1. 2. 3. 4. 5. 6. 3.用法: 服务端与客户端通过本地socket文件进行通信,服务端和客户端都得定义相同的socket文件: const char *socket_path="wzy.socket"; #服务端和客户端通...
unsigned char sin_zero[8]; /* 与struct sockaddr一样的长度 */ }; struct in_addr就是32位IP地址。 struct in_addr { unsigned long s_addr; }; 也有 struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4;} S_un_b; struct { u_short s_w1,s_w2;} S_un_w; u_long ...
} S_un; } IN_ADDR; sin_family指代协议族,在socket编程中只能是AF_INET sin_port存储端口号(使用网络字节顺序) sin_addr存储IP地址,使用in_addr这个数据结构 sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。 s_addr按照网络字节顺序存储IP地址 ...
} S_un; } IN_ADDR; sin_family指代协议族,在socket编程中只能是AF_INET sin_port存储端口号(使用网络字节顺序) sin_addr存储IP地址,使用in_addr这个数据结构 sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。 s_addr按照网络字节顺序存储IP地址 ...
struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系 2014-09-27 19:33 −在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t;struct sockaddr { &nb... 破冰Lab-Cookun ...
单字节保存为;2.S_un_w,双字节保存;3.S_addr,4字节保存;我们常用S_addr4字节直接保存IP地址信息 unsigned char sin_zero[len]用来充填对齐,使sockaddr_in与sockaddr内存对齐,不用关注。网络字节序与主机字节序 在之前,一直提到对应的端口port与网络地址IP地址,必须使用网络字节序来操作。什么是网络字节序...
w; unsigned long S_addr; } S_un;} IN_ADDR;sin_family指代协议族,在socket编程中只能是AF_INETsin_port存储端口号(使用网络字节顺序)sin_addr存储IP地址,使用in_addr这个数据结构sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。s_addr按照网络字节顺序存储IP地址 ...
struct sockaddr_un { // 通信地址类型 sun_family_t sun_family; // socket文件的路径 char sun_path[100]; } 网络通信地址 struct sockaddr_in { //通信地址类型 short int sin_family; //端口号 in_port_t sin_port; //ip地址 struct in_addr sin_addr; ...