struct sockaddr 和 sockaddr_in 的区别
struct sockaddr结构类型是用来保存socket信息的:
struct sockaddr {
unsigned short sa_family; /* 地址族, AF_xxx */——地址的格式
char sa_data[14]; /* 14 字节的协议地址 */——地址值(IP和端口号)
};
Sockfd是调用socket函数返回的socket描述符,my_addr是一个指向包含有本机IP地址及端口号等信息的sockaddr类型的指针;addrlen常被设置为sizeof(struct sockaddr)。
struct sockaddr结构类型是用来保存socket信息的:
struct sockaddr {
unsigned short sa_family; /* 地址族, AF_xxx */
char sa_data[14]; /* 14 字节的协议地址 */
};
sa_family一般为AF_INET,代表Internet(TCP/IP)地址族;sa_data则包含该socket的IP地址和端口号。
另外还有一种结构类型:
struct sockaddr_in {
short int sin_family; /* 地址族 */
unsigned short int sin_port; /* 端口号 */
struct in_addr sin_addr; /* IP地址 */
unsigned char sin_zero[8]; /* 填充0 以保持与struct sockaddr同样大小 */
};
这个结构更方便使用。sin_zero用来将sockaddr_in结构填充到与struct sockaddr同样的长度,可以用bzero()或memset()函数将其置为零。指向sockaddr_in 的指针和指向sockaddr的指针可以相互转换,这意味着如果一个函数所需参数类型是sockaddr时,你可以在函数调用的时候将一个指向 sockaddr_in的指针转换为指向sockaddr的指针;或者相反。
你只要记住,填值的时候使用sockaddr_in结构,而作为函数的
参数传入的时候转换成sockaddr结构就行了,毕竟都是16个字符
长。
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_addr;
} S_un };
struct sockaddr 和 sockaddr_in 的区别相关推荐
- linux sockaddr in,Linux C中sockaddr和sockaddr_in的区别
Linux C中sockaddr和sockaddr_in的区别 struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址. 在各种系统调用或者函数中,只要 ...
- socket编程之sockaddr和sockaddr_in的区别
sockaddr和sockaddr_in的区别 sockaddr和sockaddr_in详解 1.struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址 ...
- linux下C语言套接字编程sockaddr和sockaddr_in的区别
tcp建立后,我想linux的服务端可以为每个连接的ip地址分配编号,方便进行每个客户端进行数据交互.所以我要知道每个连接的ip地址. struct sockaddr和struct sockaddr_ ...
- sockaddr和sockaddr_in的区别
From: http://www.it165.net/pro/html/201211/4066.html 初学者很容易对二者有困惑的感觉,下面来讲一下二者的区别. sockaddr是在头文件 /usr ...
- TCP/UDP中sockaddr和sockaddr_in的区别及用法
目录 一.先看两个结构体的定义 1.1 sockaddr 1.2 sockaddr_in 二.sockaddr与sockaddr_in的相同点和区别 2.1 相同点 2.2 区别 三.使用方法 3.1 ...
- 【C++】Winsock套接字编程,struct sockaddr、sockaddr_in,主机网络字节序
前一篇关于windows平台下winsock套接字编程的相关api struct sockaddr与struct sockaddr_in 在bind函数,connect函数里提到了套接字编程网络地址信 ...
- sockaddr与sockaddr_in的区别
struct sockaddr {unsigned short sa_family; char sa_data[14]; }; 此数据结构用做bind.connect.recvfrom.sendto等 ...
- linux网络编程之地址结构sockaddr和sockaddr_in的区别
1.介绍sockaddr 结构体struct sockaddr在/usr/include/linux/socket.h中定义 struct sockaddr {unsigned short sa_fa ...
- struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
sockaddr struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; ...
- struct sockaddr和struct sockaddr_in区别
struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址. 一.sockaddr sockaddr在头文件#include <sys/socket. ...
最新文章
- NYOJ 37 回文字符串
- sql语言和php,SQL语言快速入门(三)_php
- WebService开发方法介绍
- cmd进入python环境_python2和python3同时存在,如何CMD中进入不同的环境
- 神经网络 数学_神经网络与纯数学之间的联系
- cocos2d-js 网络请求之GET/POST
- SQL SERVER日期函数详细用法
- js map遍历 修改对象里面的值_前端面试之你必须要懂的原生JS
- 防火墙添加ip白名单_宝塔防火墙IP白名单添加/导入知道创宇云CDN节点IP段
- aliez歌词_核爆神曲《aLIEz》中文歌词完整版(QQ音乐翻译版)
- Java ssm框架是什么?
- (转)DirectX不是全部!3D游戏图形技术解析
- 【常用表】三角函数基本公式
- HCE技术在城市一卡通中的应用探讨
- 27岁了,目前从事软件测试,听说测试前途是IT里最差的,是这样吗?
- origin绘图软件安装包及入门使用
- 前端培训丁鹿学堂:vue3之计算数据和watch监听深入
- mysql悲观锁for update
- Scrum板与Kanban如何抉择?敏捷工具:opdea板与按照guarbpgz
- 2023年EasyRecovery数据恢复还会收费吗?
热门文章
- 7-4 输出三角形字符阵列 (15 分)
- linux fdisk的分区和格式化和挂载相关操作说明
- 字符串数组排序,如果可以保证前一个字符的末尾与后一个字符的开头相同,返回1,否则返回-1...
- IOS用正则验证手机号
- PAT 1086 Tree Traversals Again
- 关于Adobe AIR 获取屏幕信息及任务栏高度.
- ab753变频器参数怎么拷贝到面板_20款常用变频器密码,想成为电工老师傅你一定需要,纯干货分享!...
- Security+ 学习笔记53 供应链风险
- BGP安全特性(华为设备)
- 华三 h3c MVRP(GVRP)配置