sockaddr和sockaddr_in

socket(),bind(),connect(),listen()这些接口 都是针对通用网络协议设计的。但同时也支持多种不同的协议族。

sockaddr就是通用网络协议的地址结构体。

sockaddr_in就是针对IPV4协议的地址结构体,其大小和sockaddr是完全相同的

sockaddr_in6是针对IPV6的。

因此sockaddr_in里面有一个sin_family,这样接口可以根据协议的类型来具体处理。

时间: 2024-10-29 11:26:28

sockaddr和sockaddr_in的相关文章

sockaddr和sockaddr_in的区别

struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址. 在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体. 网络中的地址包含3个方面的属性: 1 地址类型: ipv4还是ipv6 2 ip地址 3 端口 相应的,头文件有如下定义: 1 include <netinet/in.h> 2 3 struct sockaddr { 4 unsigned short sa_family; // 2 bytes address fami

sockaddr和sockaddr_in的区别(转载)

原文链接:http://kenby.iteye.com/blog/1149001 struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址. 在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体. 网络中的地址包含3个方面的属性: 1 地址类型: ipv4还是ipv6 2 ip地址 3 端口 相应的,头文件有如下定义: include <netinet/in.h> struct sockaddr { unsigned short s

sockaddr与sockaddr_in结构体简介

struct sockaddr { unsigned  short  sa_family;     /* address family, AF_xxx */char  sa_data[14];                 /* 14 bytes of protocol address */};sa_family是地址家族,一般都是“AF_xxx”的形式.好像通常大多用的是都是AF_INET.sa_data是14字节协议地址.此数据结构用做bind.connect.recvfrom.sendt

转载:socket网络编程之sockaddr与sockaddr_in的区别

转载自:http://blog.csdn.net/shihoongbo/article/details/51637142 1.struct sockaddr与struct sockaddr_in 在bind函数,connect函数里提到了套接字编程网络地址信息结构体const struct sockaddr和const struct sockaddr_in 关于const struct sockaddr是通用的套接字网络地址信息结构体,而const struct sockaddr_in主要针对于

sockaddr与sockaddr_in

struct sockaddr { unsigned short sa_family;     char sa_data[14]; }; 此数据结构用做bind.connect.recvfrom.sendto等函数的参数,指明地址信息. 但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结构 sockaddr_in(在netinet/in.h中定义): struct sockaddr_in {     short int sin_family;     unsig

网络编程——sockaddr 与 sockaddr_in

struct sockaddr 这个结构体是linux的网络编程接口中用来表示IP地址的标准结构体,bind.connect等函数中都需要这个结构体,这个结构体是兼容IPV4和IPV6的. 在实际编程中这个结构体会被一个struct sockaddr_in所填充. sockaddr 用于存储参与(IP)Windows套接字通信的计算机上的一个internet协议(IP)地址.为了统一地址结构的表示方法 ,统一接口函数,使得不同的地址结构可以被bind().connect().recvfrom()

socket 编程--sockaddr与sockaddr_in区别与联系(转)

在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t;struct sockaddr {        sa_family_t     sa_family;    /* address family, AF_xxx       */        char            sa_data[14];    /* 14 bytes of protoc

sockaddr/sockaddr_in sockaddr_un详解

首先说一下Unix域协议 Unix域协议并不是一个实际的协议族,它只是在同一台主机上进行客户-服务器通信时,使用与在不同主机上的客户和服务器间通信时相同的API(套接口或XTI)的一种方法. 当客户和服务器在同一台主机上时,Unix域协议是IPC通信方式的一种替代品. Unix域提供了两种类型的套接口:字节流套接口(与TCP类似)和数据报套接口(与UDP类似). 14.2. Unix域套接口地址结构 // 在<sys/un.h>头文件中定义的Unix域套接口地址结构struct sockadd

sockaddr &amp; sockaddr_in strucut

struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ }; sa_family是地址家族,一般都是“AF_xxx”的形式.好像通常大多用的是都是AF_INET. sa_data是14字节协议地址.此数据结构用做bind.connect.recvfrom.sendto等函数的参数,指明地址信息. 但一般