位置: 编程技术 - 正文
推荐整理分享Linux C中sockaddr和sockaddr_in的区别(sockaddr_in和sockaddr),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:struct sockaddr_un,struct sockaddr_ll,linux socks5,linux sockaddr_in,linux .sock,linux socks5,linux .sock,struct sockaddr_ll,内容如对您有帮助,希望把文章链接给更多的朋友!
Linux C中sockaddr和sockaddr_in的区别
struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。
在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。
网络中的地址包含3个方面的属性:
1 地址类型: ipv4还是ipv ip地址3 端口
相应的,头文件有如下定义:
注释中标明了属性的含义及其字节大小,这两个结构体一样大,都是个字节,而且都有family属性,不同的是:
sockaddr用其余个字节来表示sa_data,而sockaddr_in把个字节拆分成sin_port, sin_addr和sin_zero分别表示端口、ip地址。sin_zero用来填充字节使sockaddr_in和sockaddr保持一样大小。
sockaddr和sockaddr_in包含的数据都是一样的,但他们在使用上有区别:
程序员不应操作sockaddr,sockaddr是给操作系统用的
程序员应使用sockaddr_in来表示地址,sockaddr_in区分了地址和端口,使用更方便。
一般的用法为:
程序员把类型、ip地址、端口填充sockaddr_in结构体,然后强制转换成sockaddr,作为参数传递给系统调用函数
网络编程中一段典型的代码为:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
Linux 中fork的执行的实例详解 Linux中fork的执行的实例详解先看看一段fork的程序intmain(){pid_tpid;语句a;pid=fork();语句b;}1.当程序运行到pid=fork()时,这个进程马上分裂(fork的中文意思)成两个
详解Linux下读取位图的注意事项 详解Linux下读取位图的注意事项在Linux下读取位图遇到的问题,很好地体现了linux与Windows操作系统的不同。按理说位图格式与操作系统无关,读取也应该
linux创建PHP定时任务的实例 linux创建PHP定时任务下面所有的前提是服务器存在PHP环境首先创建一个php文件:示例内容如下:php$ch=curl_init();//设置请求curl_setopt($ch,CURLOPT_URL,"写上要请
友情链接: 武汉网站建设