socket 的地址结构
来源:互联网 发布:数据库空间 编辑:程序博客网 时间:2024/05/21 12:44
在建立socket通信的过程中地址起着很关键的作用,在设计TCP/IP网络程序时,必须对 socket 的地址结构有清晰的认识。 TCP/IP 的地址数据结构。 struct sockaddr { u_short safamily;/*地址族,AF_XXX*/char sa_data[14];/*14字节的特定协议地址*/ } 其中14字节的sa_data随协议而不同。在TCP/IP协议族中,地址数据结构为: struct in_addr{ u_long s_addr;/*32比特的IP地址,网络字节顺序 */ }; struct sockaddr_in{ short sin_family; /*AF_INET*/ u_short sin_short; /*16比特的端口号,网络字节顺序*/ struct in_addr sin_addr; /*32比特的IP地址,网络字节顺序*/ char sin_zero[8]; /*未用*/ } 网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。由主机字节顺序转换为网络字节顺序的两个函数如下:htons():将16比特的主机字节顺序数据转换为网络字节顺序htonl():将32比特的主机字节顺序数据转换为网络字节顺序与此相对应的将网络字节顺序转换为主机字节顺序的函数为: ntohs():将16比特的网络字节顺序数据转换为主机字节顺序ntohl():将32比特的网络字节顺序数据转换为主机字节顺序由于各种socket地址结构的长度相差很大,TCP/IP地址族的地址长度为8字节,XNS地址为14字节,UNIX地址不定,最长可达110字节,所以无法以一种统一的格式定义它们,需要在bind()调用中明确指定socket地址的长度。 当bind()参数无效或端口已被其他程序所用时,函数返回-1,表明本次socket命名失败。 |
- socket 的地址结构
- socket 的地址结构
- socket 的地址结构
- socket 的地址结构
- socket 的地址结构
- socket 的地址结构
- socket 的地址结构
- socket 的地址结构
- socket地址结构描述
- socket地址结构体
- Socket地址结构
- SOCKET地址结构
- Socket地址结构解析
- socket 地址结构体定义
- socket结构和IP地址形式间转换的总结
- linux下socket编程之地址结构
- Netlink系列2Netlink socket地址结构
- Socket的地址查询
- [转]FTP搜索引擎的设计与实现(优化版)
- 将Socket应用程序从Unix向Windows移植中应注意的几点问题
- socket的工作模式
- Linux程式设计入门 - socket/inetd programming
- Eclipse 是什么?
- socket 的地址结构
- [转]FTP搜索引擎的设计与实现
- BSD Socket 简易入门手册
- 用Socket和MSHTML对象模型创建自己的浏览器
- 网络程序设计 Sockets
- 用纯粹的C++编写COM组件
- 探讨CtreeCtrl::SortChildrenCB
- 国内几个使用Ruby开发的网站
- 在VC++中使用斷言