当前位置: 首页 > news >正文

兴隆大院网站哪个公司做的天元建设集团有限公司新中大i8

兴隆大院网站哪个公司做的,天元建设集团有限公司新中大i8,网络公司做的网站我能改后台么,wordpress首页搭建socket编程1 1. 网络字节序2. ip地址转换函数3. sockaddr数据结构 1. 网络字节序 多字节数据有大端和小端之分,网络数据流采用大端字节序,如果主机采用的是小端字节序,那么需要转换。 大端:低地址存高字节,高地址存低…

socket编程1

    • 1. 网络字节序
    • 2. ip地址转换函数
    • 3. sockaddr数据结构

1. 网络字节序

多字节数据有大端和小端之分,网络数据流采用大端字节序,如果主机采用的是小端字节序,那么需要转换。

  • 大端:低地址存高字节,高地址存低字节,例如端口号为2048,为0x0800, 则在网络中传输先发08,后发00
  • 小端:低地址存低字节,高地址存高字节
#include <arpa/inet.h>uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
//这里h指host,n指net,l指四个字节数据的转换,s指两个字节的转换
//比如端口转换可以用两个字节的转换,ip可以用四个字节的函数转换

查看本机字节序的方法,可以使用联合体来判断。其中联合体成员设置为short类型和字符数组,然后给short类型赋值,然后查看字符数组的内容,就能知道本机的存储字节序。

#include <stdio.h>union bytelist
{short cont;char chcon[sizeof(short)];
};int main()
{union bytelist byt;byt.cont = 0x0102;printf("byte content is [%d], store 00 is [0x%02d] store 01 is [0x%02d]\n",byt.cont,byt.chcon[0],byt.chcon[1]);//输出  0201,说明低位数据存内存低位地址,高位数据存内存高位地址,小端存储return 0;
}

2. ip地址转换函数

#include <arpa/inet.h>
int inet_pton(int af, const char *src, void *dst);
const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);参数:af:只能是这两个 AF_INET or AF_INET6,分别代表ipv4和ipv6src:指源字符串或源ip地址dst:指目的字符串或目的ip地址size:指将ip转成字符串的字符串大小

3. sockaddr数据结构

  以前使用sockaddr这个结构体,但是结构体成员区分不够清晰,所以现在ipv4使用sockaddr_in代替它,这两个内存占用大小是一样的,只有内部成员变量有一点区别。

其中:

  • sockaddr内存占用16个字节,16位地址类型(是ipv4还是ipv6),14字节的地址数据
  • sockaddr_in内存占用16个字节,16位地址类型(是ipv4还是ipv6),16位端口号,32位ip地址,8字节空白填充
//sockaddr 结构体
struct sockaddr {sa_family_t    sa_family; 		/* address family: AF_INET */char 	sa_data[14];			/* 14 bytes of protocol address */
};//sockaddr_in 结构体
struct sockaddr_in {sa_family_t    sin_family; /* address family: AF_INET */in_port_t      sin_port;   /* port in network byte order */struct in_addr sin_addr;   /* internet address */
};/* Internet address. */
struct in_addr {uint32_t       s_addr;     /* address in network byte order */
};

使用的时候转换一下类型:

struct sockaddr_in servaddr;
/* initialize servaddr */
bind(listen_fd, (struct sockaddr *)&servaddr, sizeof(servaddr));
http://www.yayakq.cn/news/697669/

相关文章:

  • 阿里云 万网 网站建站软件免费版下载
  • 实现微信绑定登录网站郑州机械网站制作
  • 科技平台网站建设wordpress插件中文版下载
  • 克隆网站带后台制作网页的思路
  • 信阳网站开发公司泉州一个网站多少钱
  • 建设银行网站 购买外汇广东建设信息网站
  • 企业门户网站管理办法温州网站建设服务中心
  • 物流网站素材wordpress 无图插件下载
  • 做视频官方网站凡客现在还能买吗
  • 潍坊市公共法律知识培训网站中国美食网页设计
  • 做书评的网站中国教师教育培训网
  • 自己做网站切入地图济南建设网站制作
  • 怎么样百度搜到自己的网站网站二级页面设计要求
  • 在linux系统上用什么做网站网络营销的目的和意义
  • 广西省住房和城乡建设厅官方网站产品网站免费模板下载
  • 推广网站推广高端网站设计开发
  • 比特币网站建设网站使用网络图片做素材 侵权
  • 桂林设计单位资质升级网站在百度上怎么注册网站
  • jsp网站开发四酷全书贵阳网站建设搜王道下拉
  • 网站开发与维护是做什么工作电脑上常用的办公软件
  • 国外网站做问卷重庆公司社保缴费比例
  • 网页制作3个网页的网站图片仿站小工具+wordpress
  • 网页制作软件安卓版yoast wordpress seo 设置教程
  • 广州网站开发广州亦客网络解答怎么做网站广告位
  • 卖狗做网站什么关键词最好wap歌词
  • 做网站的数据从哪里来网站仿
  • 站内关键词排名优化软件网络广告营销的典型案例
  • 免费招聘网站招聘ios软件开发前景
  • 怎么做汽车网站推广方案开店做网站有什么好处
  • 竞价网站策划打开建设银行官方网站首页