sockaddr_in/

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
sockaddr_in(在netinet/in.h中定义):
struct sockaddr_in {
short int sin_family;                      /* Address family */
unsigned short int sin_port;       /* Port number */
struct in_addr sin_addr;              /* Internet address */
unsigned char sin_zero[8];         /* Same size as struct sockaddr */
};
struct in_addr {
unsigned long s_addr;
};

typedef struct in_addr {
union {
            struct{
                        unsigned char s_b1,
                        s_b2,
                        s_b3,
                        s_b4;
                        } S_un_b;
           struct {
                        unsigned short s_w1,
                        s_w2;
                        } S_un_w;
            unsigned long S_addr;
          } S_un;
} IN_ADDR;

sin_family指代协议族,在socket编程中只能是AF_INET
sin_port存储端口号(使用网络字节顺序)
sin_addr存储IP地址,使用in_addr这个数据结构
sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。
s_addr按照网络字节顺序存储IP地址

sockaddr_in和sockaddr是并列的结构,指向sockaddr_in的结构体的指针也可以指向
sockadd的结构体,并代替它。也就是说,你可以使用sockaddr_in建立你所需要的信息,
在最后用进行类型转换就可以了bzero((char*)&mysock,sizeof(mysock));//初始化
mysock结构体名
mysock.sa_family=AF_INET;
mysock.sin_addr.s_addr=inet_addr("192.168.0.1");
……
等到要做转换的时候用:
(struct sockaddr*)mysock

sockaddr_in数据结构 Socket 网络编程中,struct sockaddr_in 是用于表示 ​IPv4 地址和端口号 的核心数据结构。它定义了如何存储和操作网络通信的地址信息。 阅读详情

相关推荐

nbiot和2g_浅谈NBIOT

一、什么是NBIOT?1、概念窄带物联网(Narrow Band Internet of Things, NB-IoT),NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,使用License频段,可采取带内、保护带或独立载波等三种部署方式,与现有网络共存。可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。2、NBIOT的特点和目标(1)超强覆盖:相对GPRS来...

weixin_39534100的博客 1684

套接字介绍,sockaddr结构(为什么要有,sockaddr_insockaddr_un的介绍+参数),ifconfig命令(本地环回地址)

套接字介绍,sockaddr结构(为什么要有,sockaddr_insockaddr_un的介绍+参数),ifconfig命令(本地环回地址)

m0_74206992的博客 2475

从深算一号到三号:海光DCU的技术演进与国产超算突围之路

本文梳理了海光DCU从深算一号到三号的技术演进历程,展现了国产高性能计算芯片从填补空白到追赶并行的突围之路。文章重点分析了深算系列在性能提升、软件生态(DTK)建设及超算平台构建方面的关键进展,并探讨了其在AI大模型训练、科学计算等领域的应用实践与未来挑战。

ipfs8storage的博客 1019

TCP/UDP中sockaddrsockaddr_in的区别及用法

目录 一、先看两个结构体的定义 1.1sockaddr 1.2 sockaddr_in 二、sockaddrsockaddr_in的相同点和区别 2.1 相同点 2.2 区别 三、使用方法 3.1 socket编程中sockaddrsockaddr_in的强制转换 3.2 补充部分 struct sockaddrstruct sockaddr_in这两个结构体用来处理网络通信的地址。 在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。 网络中的地址包含3个方面.

qq_41687938的博客 4180

sockaddrsockaddr_in详解

struct sockaddrstruct sockaddr_in这两个结构体用来处理网络通信的地址。一、sockaddrsockaddr在头文件#include <sys/socket.h>中定义,sockaddr的缺陷是:sa_data把目标地址和端口信息混在一起了,如下:struct sockaddr { sa_family_t sin_family;//地址族    cha

爱橙子的OK绷的专栏 17万+

sockaddr_in结构体

点击进入结构如下: struct sockaddr_in { __uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero[8]; }; sin_family指代协议族,在socket编程中只

hianyu的博客 1万+

sockaddr/sockaddr_in sockaddr_un详解

首先说一下Unix域协议 Unix域协议并不是一个实际的协议族,它只是在同一台主机上进行客户-服务器通信时,使用与在不同主机上的客户和服务器间通信时相同的API(套接口或XTI)的一种方法。 当客户和服务器在同一台主机上时,Unix域协议是IPC通信方式的一种替代品。 Unix域提供了两种类型的套接口:字节流套接口(与TCP类似)和数据报套接口(与UDP类似)。 14.2. U...

weixin_30552635的博客 457

c语言sockaddr_in6,C语言socket编程总结(三) struct sockaddr_in /struct sockaddr_in6/struct addrinfo 结构体...

//////////////////////////////////////lbnodeIPV4:socket//struct sockaddr_in {ui// __uint8_tsin_len;this// sa_family_tsin_family;//iPv4地址族spa// in_port_tsin_port; //端口号指针// structin_add...

weixin_30072453的博客 903

sockaddr_in / sockaddr 的理解 和 使用到的一些网络函数(sock inet_*)

1,struct sockaddrstruct sockaddr_instruct in_addr。2、网络编程中频繁使用的函数简单总结。

BUG_MeDe的博客 1971

C语言socket编程总结(三) struct sockaddr_in /struct sockaddr_in6/struct addrinfo 结构体

//////////////////////////////////////lbIPV4://struct sockaddr_in {//    __uint8_t sin_len;//    sa_family_t sin_family;//iPv4地址族//    in_port_t sin_port;     //端口号//    struct in_addr sin_addr;//IPV4...

代码解释生活 6705

sockaddrsockaddr_in的区别 http://blog.csdn.net/joeblackzqq/article/details/8258693

sockaddrsockaddr_in的区别 分类: Linux_C Linux_C++ C2012-12-05 10:01 3894人阅读 评论(2) 收藏 举报 From: http://www.it165.net/pro/html/201211/4066.html 初学者很容易对二者有困惑的感觉,下面来讲一下二者的区别。 sockaddr是在头文

诺尔曼 449

sockaddrsockaddr_in

原文地址:sockaddrsockaddr_in作者:Hosin struct sockaddr {     unsigned short sa_family;     char sa_data[14]; }; 此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。 但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结

dl429的专栏 691

Linux Socket编程核心:深入解析sockaddr数据结构

本文深入解析了Linux Socket编程中的核心数据结构sockaddr及其家族成员。sockaddr作为网络编程的通用基类,通过统一的接口支持不同类型的网络地址。文章详细介绍了IPv4的sockaddr_in、IPv6的sockaddr_in6以及本地通信的sockaddr_un等结构,并通过内存布局图展示了其内部组织。特别强调了网络字节序转换的重要性,给出了常见错误示例和正确用法。最后通过一个TCP服务器创建案例,演示了这些数据结构在实际编程中的应用。理解这些底层结构对于开发稳健的网络应用至关重要。

软件科学-郝学胜 2018

字符串地址转换为sockaddr_in

注意:inet_pton函数用于处理IPv4和IPv6地址,而inet_ntoa函数用于将in_addr结构体转换回点分十进制字符串形式。这段代码定义了一个str_to_sockaddr_in函数,它接受一个字符串形式的IP地址和一个整型的端口号,然后将它们转换为sockaddr_in结构体。在main函数中,我们调用这个函数并打印出转换结果。printf(“转换成功: IP=%s, Port=%d\n”, inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));

qq_43559669的博客 684

socket 编程必学:sockaddr_insockaddr 的前世今生》

想搞懂 socket 编程里的地址结构体?本文3 分钟讲透 sockaddrsockaddr_in 的区别:从 sockaddr 的历史兼容设计,到 sockaddr_in 专为 IPv4 优化的结构体成员(sin_family/sin_port/sin_addr),结合内存布局图 + 代码示例,解决网络编程中地址绑定、客户端连接的基础痛点,新手也能秒懂!

fwfxhhx的博客 689

pcap库中的struct sockaddr_instruct sockaddr

关于connect函数的函数原型:其中,sa_data中要填入ip与端口等信息,不便于操作,所以通常是对struct sockaddr_in *操作后转换成struct sockaddr *类型后传入connect函数。

Xiaoyuan_he的博客 330

sockaddr_in+结构体

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

zhwei_87的专栏 511

Linux Socket编程核心:深入解析sockaddr数据结构

本文深入解析了Linux Socket编程中的核心数据结构sockaddr族,包括通用结构sockaddr、IPv4专用结构sockaddr_in、IPv6专用结构sockaddr_in6、Unix域专用结构sockaddr_un以及通用存储结构sockaddr_storage。这些数据结构用于存储网络地址信息,确保Socket API的协议无关性。文章详细介绍了各结构定义、大小、使用场景和初始化方法,并提供了TCP服务器示例代码,展示如何在实际编程中使用sockaddr_in结构进行socket创建、绑定

m0_57545130的博客 868

linux c 网络通讯,Linux C Socket 通信知识积累--- 之sockaddrsocketaddr_in 、swocketaddr_un...

1.错误提示:a)Connectionrefused:连接被拒绝2.Socket通信常用的头文件a)Sys/socket.h:i.sockaddr结构:structsockaddr是通用的套接字地址是linux网络通信的地址结构体的一种,其定义如下:structsockaddr{unsignedshortsa_family;/*addressfamily*/Chars...

weixin_28869849的博客 600

linux socket 编程 —— 霸气的宏定义

高考完了,闲着没事, 想写一个 c/s ,但是在 协议域 装入有了一些问题。 struct sockaddr_in servaddr;                 servaddr.sin_port = 6789;         servaddr.sin_addr.s_addr = htonl(INADDR_ANY); //local h

xyz_yz的专栏 944

struct sockaddr

特性类型通用地址指针IPv4 专用地址指针用途系统调用接口(如bind实际操作 IPv4 地址字段访问不能直接访问 IP/端口可直接访问sin_portsin_addr地址族任意(AF_INET, AF_INET6…)仅 AF_INET大小通常 16 字节通常 16 字节(与 sockaddr 一致)转换需从具体类型强制转换而来需从通用类型强制转换回来(需检查族)

weixin_41812346的博客 399
上一篇: Linux常用C函数-接口处理篇 zhuan
下一篇: select()系统调用和文件描述符集fd_set 转
grasspower
博客等级 码龄19年 12粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值