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 的区别相关推荐

  1. linux sockaddr in,Linux C中sockaddr和sockaddr_in的区别

    Linux C中sockaddr和sockaddr_in的区别 struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址. 在各种系统调用或者函数中,只要 ...

  2. socket编程之sockaddr和sockaddr_in的区别

    sockaddr和sockaddr_in的区别 sockaddr和sockaddr_in详解 1.struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址 ...

  3. linux下C语言套接字编程sockaddr和sockaddr_in的区别

    tcp建立后,我想linux的服务端可以为每个连接的ip地址分配编号,方便进行每个客户端进行数据交互.所以我要知道每个连接的ip地址. struct sockaddr和struct sockaddr_ ...

  4. sockaddr和sockaddr_in的区别

    From: http://www.it165.net/pro/html/201211/4066.html 初学者很容易对二者有困惑的感觉,下面来讲一下二者的区别. sockaddr是在头文件 /usr ...

  5. TCP/UDP中sockaddr和sockaddr_in的区别及用法

    目录 一.先看两个结构体的定义 1.1 sockaddr 1.2 sockaddr_in 二.sockaddr与sockaddr_in的相同点和区别 2.1 相同点 2.2 区别 三.使用方法 3.1 ...

  6. 【C++】Winsock套接字编程,struct sockaddr、sockaddr_in,主机网络字节序

    前一篇关于windows平台下winsock套接字编程的相关api struct sockaddr与struct sockaddr_in 在bind函数,connect函数里提到了套接字编程网络地址信 ...

  7. sockaddr与sockaddr_in的区别

    struct sockaddr {unsigned short sa_family; char sa_data[14]; }; 此数据结构用做bind.connect.recvfrom.sendto等 ...

  8. linux网络编程之地址结构sockaddr和sockaddr_in的区别

    1.介绍sockaddr 结构体struct sockaddr在/usr/include/linux/socket.h中定义 struct sockaddr {unsigned short sa_fa ...

  9. struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系

    sockaddr struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; ...

  10. struct sockaddr和struct sockaddr_in区别

    struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址. 一.sockaddr sockaddr在头文件#include <sys/socket. ...

最新文章

  1. NYOJ 37 回文字符串
  2. sql语言和php,SQL语言快速入门(三)_php
  3. WebService开发方法介绍
  4. cmd进入python环境_python2和python3同时存在,如何CMD中进入不同的环境
  5. 神经网络 数学_神经网络与纯数学之间的联系
  6. cocos2d-js 网络请求之GET/POST
  7. SQL SERVER日期函数详细用法
  8. js map遍历 修改对象里面的值_前端面试之你必须要懂的原生JS
  9. 防火墙添加ip白名单_宝塔防火墙IP白名单添加/导入知道创宇云CDN节点IP段
  10. aliez歌词_核爆神曲《aLIEz》中文歌词完整版(QQ音乐翻译版)
  11. Java ssm框架是什么?
  12. (转)DirectX不是全部!3D游戏图形技术解析
  13. 【常用表】三角函数基本公式
  14. HCE技术在城市一卡通中的应用探讨
  15. 27岁了,目前从事软件测试,听说测试前途是IT里最差的,是这样吗?
  16. origin绘图软件安装包及入门使用
  17. 前端培训丁鹿学堂:vue3之计算数据和watch监听深入
  18. mysql悲观锁for update
  19. Scrum板与Kanban如何抉择?敏捷工具:opdea板与按照guarbpgz
  20. 2023年EasyRecovery数据恢复还会收费吗?

热门文章

  1. 7-4 输出三角形字符阵列 (15 分)
  2. linux fdisk的分区和格式化和挂载相关操作说明
  3. 字符串数组排序,如果可以保证前一个字符的末尾与后一个字符的开头相同,返回1,否则返回-1...
  4. IOS用正则验证手机号
  5. PAT 1086 Tree Traversals Again
  6. 关于Adobe AIR 获取屏幕信息及任务栏高度.
  7. ab753变频器参数怎么拷贝到面板_20款常用变频器密码,想成为电工老师傅你一定需要,纯干货分享!...
  8. Security+ 学习笔记53 供应链风险
  9. BGP安全特性(华为设备)
  10. 华三 h3c MVRP(GVRP)配置