linux下socket通信常用的结构与头文件
来源:互联网 发布:算法1mints.txt 编辑:程序博客网 时间:2024/04/27 13:24
参考书籍:
《TCP/IP详解,卷1:协议》
《TCP/IP详解 卷2:实现》
《计算机网络第五版》谢希仁
《unix网络编程》
1. 错误提示:
a) Connection refused :连接被拒绝2. Socket 通信常用的头文件
a) Sys/socket.h :
i. sockaddr 结构: struct sockaddr是通用的套接字地址 是linux 网络通信的地址结构体的一种,其定义如下:
struct sockaddr
{
unsigned short sa_family ; /* address family*/
Char sa_data[14] ; /*up to 14 bytes of direct address */
} ;
说明:
Sa_family : 是地址家族,也成作,协议族,一般都是"AF_XXX"的形式,常用的有
AF_INET Arpa(TCP/IP) 网络通信协议
AF_UNIX UNIX 域协议(文件系统套接字)
AF_ISO ISO标准协议
AF_NS 施乐网络体统协议
AF_IPX Novell IPX 协议
AF_APPLETALK Appletalk DDS
Sa_data: 是14字节的协议地址
struct socketaddr_in : struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。
定义如下:
Struct sockaddr_in
{
__SOCKADDR_COMMN ( sin_ );
in_port_t sin_port ; /* prot number . */
Struct in_addr sin_addr ; /* Internet address . */
/* Pad to size of 'struct sockaddr' . */
Unsigned char sin_zero[sizeof ( struct sockaddr ) - __SOCKADDR_COMMON_SIZE - sizeof ( in_port_t ) - sizeof( struct in_addr )];
};
Struct socketaddr_un : 真对UNIX域套接字地址, struct sockaddr是通用的套接字地址,而struct sockaddr_un则是UNIX环境下套接字的地址形式,一般情况下,需要把sockaddr_un结构强制转换成sockaddr结构再传入系统调用函数中。
结构定义如下:
Struct socketaddr_un
{
_SOCKADDR_COMMON(sun_); // __SOCKADDR_COMMON(sun_) 宏定义对应的定义为 sa_family_t sun_family
Char sun_path[108];
};
结束语:
想来你是要进行网络编程,使用socket, listen, bind等函数。你只要记住,填值的时候使用sockaddr_in结构,而作为函数的参数传入的时候转换成sockaddr结构就行了,毕竟都是16个字符长。
- linux下socket通信常用的结构与头文件
- linux下socket编写常用头文件
- linux下socket编程常用头文件
- linux下socket 编程常用头文件
- linux下socket编程常用头文件
- linux下socket编写常用头文件
- linux下socket编程常用头文件
- linux socket 编程常用的头文件
- Linux下Socket相关的头文件
- 转:linux下socket编程常用头文件
- 【转】linux下socket编程常用头文件
- linux 下的通信编程常用的结构体分析socket(3)
- linux下常用头文件
- Linux下常用头文件
- Linux socket 网络编程 常用头文件
- Linux socket 网络编程 常用头文件
- linux socket编程常用头文件
- linux socket网络编程常用头文件
- siverlight使用渐变效果实现遮罩效果
- Union 共用体
- Android多点触摸
- UNIX/LINUX 全局跳转
- leetcode4: Binary Tree Maximum Path Sum
- linux下socket通信常用的结构与头文件
- JAVA 半角转换为全角(包含英文和符号)
- dbms_rls
- flex遍历对象的所有属性
- OpenCV背景去除的几种方法
- 商务部:2013年吸收外资规模仍将保持平稳态势
- Source Taste:Command Pattern in Activiti
- java.io.EOFException: while trying to read 65557 bytes
- db2取第一条数据