网络编程中,有结构体 SOCKADDR_IN ,其中有成员为S_un,这样的命名的规则是什么,S代表什么意思?

作者&投稿:雪华 (若有异议请与网页底部的电邮联系)
在网络编程中,SOCKADDR_IN 后缀_IN代表什么意思,这种命名规则是什么~

应该是Internet的意思吧,msdn对SOCKADDR_IN的解释是这样说的:
In the Internet address family, this structure is used by Windows Sockets to
specify a local or remote endpoint address to which to connect a socket. This is
the form of the sockaddr structure specific
to the Internet address family and can be cast to sockaddr.

sin_family表示协议簇,一般用AF_INET表示TCP/IP协议。
sin_addr是一个联合体,用联合体就可以使用多种方式表示IP地址。一般我们使用其中的最后一种方式,即用无符号长整型数据来表示IP地址。此时,用的是s_nu数据成员,s_un是一个结构体,其中只有一个数据成员,即s_addr。
使用方式:
变量.sin_family=AF_INET;
变量.sin_addr.S_un.S.addr=htonl("IP地址");

S表示 Sock吧
un 表示union联合

S_un是SOCKADDR_IN结构中的in_addr结构中的成员.
声明是
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; // 是个联合
};

SOCKADDR_IN是通信接口目录信息的意思,其中的成员变量S_un 应该是表明socket的一个成员的属性,S代表socket。


网络编程函数inet_pton()
inet_pton函数能够处理ipv4和ipv6。int inet_pton(int af, const char *src, void *dst); 这个函数转换字符串到网络地址,第一个参数af是地址族,转换后存在dst中。af =AF_INET6 src为指向IPV6的地址,,函数将该地址转换为in6_addr的结构体,并复制在*dst中; 如果函数出错将返回一个负值...

嵌入式驱动开发需要学什么
嵌入式驱动开发需要学以下:一:C语言 嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。二:Linux基础 Linux操作系统的概念...

C#语言到底是什么,它与C语言有什么区别?
C#是微软公司在2000年6月发布的一种面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。C#语言与C语言区别为:编译不同、内存管理不同、应用不同。一、编译不同 1、C#语言:C#语言的代码...

c语言,union有什么用?
本质上来说和结构体是一样的,但是从包装的角度来看有差异。1、union中可以定义多个成员,union的大小由最大的成员的大小决定。2、union成员共享同一块大小的内存,一次只能使用其中的一个成员。3、对某一个成员赋值,会覆盖其他成员的值(也不奇怪,因为他们共享一块内存。但前提是成员所占字节数相同,...

ethhdr、iphdr、tcphdr、udphdr等结构体,以及在很多程序中,命名结构体...
hdr大多数情况,包括你列出来的几种 都是header的简称 即数据头

游戏程序员学什么编程语言好?
1.游戏程序设计:C++程序设计入门;基本数据类型和输入输出;流程控制语句;数组、指针和引用、函数;程序结构和书写规;范结构体和联合体、类;继承与多态;异常处理与程序调试。2.算法与数据结构:算法分析;数据结构;基本算法;STL的概念与使用;静态库与动态库;XML库的使用。3.Win32程序设计:Windows...

Linux C语言网络编程问题!
}memset(&serv_adr, 0, sizeof(serv_adr)); \/\/初始化远程主机的地址,结构体内所有成员清零 serv_adr.sin_family = AF_INET; \/\/设置地址类型 memcpy(&serv_adr.sin_addr, host->h_addr, host->h_length);\/\/取出指向远程主机的指针中包含的地址信息,赋给远程主机地址变量 serv_adr.sin...

嵌入式开发,请问学习嵌入式的时候,是否需要先学习别
成为一名合格的嵌入式Linux开发工程师需要学习哪些知识?一:C语言 嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。二:...

网络编程时,套接口ioctl函数的参数struct ifreq定义在哪个文件里_百度...
<net\/if.h> 这个头文件,把这个文件包含进去,你就可以使用这个结构体了

java开发需要学习什么
01、网站页面设计 02、HTML5 03、CSS3 第二阶段:Javascript开发与实战 01、Javascript开发 02、Jquery实战 第三阶段:Java开发基础 01、开发工具介绍与环境搭建 02、基本语法 03、基础数据结构 04、逻辑结构体 05、函数与方法 06、数组 07、基础类与对象 第四阶段:Java面向对象 01、面向对象编程 02...

英德市15824641364: 网络编程中,有结构体 SOCKADDR - IN ,其中有成员为S - un,这样的命名的规则是什么,S代表什么意思? -
阳胜羌月: S表示 Sock吧 un 表示union联合S_un是SOCKADDR_IN结构中的in_addr结构中的成员. 声明是 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; // 是个联合 };

英德市15824641364: linux下socket编程中 bind(sockfd,(struct sockaddr *)(&server - addr),sizeof(struct sockaddr)) 怎么理解
阳胜羌月: (struct sockaddr *)(&server_addr)这个是一个强制类型转换,就是将结构体&server_addr强制转换成struct sockaddr *类型.这个是c语言范畴的东西.因为我们只能创建和填充sockaddr_in和sockaddr_in6的结构体和里面的字段,但是很多socket参数只接受sockaddr类型的结构体,所以在这里要强制转换一下,就我记得connect()函数里也会转换一下.

英德市15824641364: 服务器的tcp进程为什么是被动打开 -
阳胜羌月: tcp被动打开,前提是你listen,这个被动打开的前提.你listen过后,其实创建了一个监听套接字,专门负责监听,不会负责传输数据.当第一个syn包到达你的服务器时,其实linux 内核并不会创建sock结构体,而是创建一个轻量级的request_...

英德市15824641364: 请教各位高手在Qt中的网络编程中,怎么接收结构体 -
阳胜羌月: e; unsigned char date[10]; }message_info; 在linux网络编程中用 recv_rc = recvfrom(socket_descriptor, &seperate_info, sizeof(seperate_info), 0, (struct sockaddr *)&sin, &sin_len);是可以的

英德市15824641364: linux下socket编译时出现绑定错误 -
阳胜羌月: 教你个调试方法,你把printf("bind error");换成printf("bind error: %s\n", strerror(errno)); 这样可以看出哪里出错了.我没猜错的话错误信息应该是"Address already in use." ,如果是这个错误的话,你再等一会从新运行server就可以了.

英德市15824641364: sock编程是什么 -
阳胜羌月: 是socket编程 网络编程 进行网络通信的时候用的,比如说qq聊天就是基于socket

英德市15824641364: 编程的进来拿分 -
阳胜羌月: typedef struct tagChainSocket{ /*定义一个结构体*/ SOCKET sock; /*该结构体中一个为“SOCKET”类型的元素*/ SOCKADDR_IN m_addr; /*该结构体中一个为“SOCKADDR_IN”类型的元素*/ int statu; /*该结构体中一个为“int”类型的元...

英德市15824641364: 通讯程序都是用socket写的吗 -
阳胜羌月: 有用IPC(inter-process communication),有用WCF吧.

英德市15824641364: linux中socket是如何调用驱动程序 -
阳胜羌月: 分为发送和接受: 发送: 首先,socketAPI会创建并把数据至一个叫sk_buff的结构体,然后依次把sk_buff交给运输层,网络层,数据链路层协议进行处理,然后在填写完sk_buff后再把他交付给驱动程序由网络设备发送出去. 接受和发送是反过程,驱动层程序一般由中断处理收到数据包后会创建sk_buff结构体,让后把数据和一些控制信息填进去,再把sk_buff向数据链路层协议交付,然后就是网络层,运输层最后交给socketAPI接口了

英德市15824641364: 怎样用C语言做socket网络编程? -
阳胜羌月: mfc只是对socket进行了一些封装,大部分人做网络编程都是用的原始的socket,比如如下接口都可以在c下进行调用 1.socket()2.bind()3.connect()4.listen()5.accept()6.send() 和recv()7.sendto() 和recvfrom()8.close() 和shutdown()9.getpeername()10.gethostname() 这些接口是在Winsock2.h中定义的不是在mfc中定义的,你只需要包含Winsock2.h头文件和Ws2_32.lib库就可以了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网