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

甘肃电子商务网站建设专业网络推广策划

甘肃电子商务网站建设,专业网络推广策划,千万别去代理记账公司,网站建设报价表文章目录 4.8 Socket介绍4.9字节序简介字节序举例 4.10字节序转换函数 4.8 Socket介绍 所谓 socket#xff08;套接字#xff09;#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端#xff0c;提供了应用层进… 文章目录 4.8 Socket介绍4.9字节序简介字节序举例 4.10字节序转换函数 4.8 Socket介绍 所谓 socket套接字就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲套接字上联应用进程下联网络协议栈是应用程序通过网络协议进行通信的接口是应用程序与网络协议根进行交互的接口。 socket 可以看成是两个网络应用程序进行通信时各自通信连接中的端点这是一个逻辑上的概念。它是网络环境中进程间通信的 API也是可以被命名和寻址的通信端点使用中的每一个套接字都有其类型和一个与之相连进程。通信时其中一个网络应用程序将要传输的一段信息写入它所在主机的 socket 中该 socket 通过与网络接口卡NIC相连的传输介质将这段信息送到另外一台主机的 socket 中使对方能够接收到这段信息。socket 是由 IP 地址和端口结合的提供向应用层进程传送数据包的机制。 socket 本身有“插座”的意思在 Linux 环境下用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件那么理所当然的我们可以使用文件描述符引用套接字。与管道类似的Linux 系统将其封装成文件的目的是为了统一接口使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信而套接字多应用于网络进程间数据的传递。 Linux系统一切皆文件。 套接字通信分两部分 服务器端被动接受连接一般不会主动发起连接 客户端主动向服务器发起连接 socket是一套通信的接口Linux 和 Windows 都有但是有一些细微的差别。 4.9字节序 简介 大部分计算机采用小端字节序。 现代 CPU 的累加器一次都能装载至少4 字节这里考虑 32 位机即一个整数。那么这 4字节在内存中排列的顺序将影响它被累加器装载成的整数的值这就是字节序问题。在各种计算机体系结构中对于字节、字等的存储机制有所不同因而引发了计算机通信领域中一个很重要的问题即通信双方交流的信息单元比特、字节、字、双字等等应该以什么样的顺序进行传送。如果不达成一致的规则通信双方将无法进行正确的编码/译码从而导致通信失败 字节序顾名思义字节的顺序就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。 字节序分为大端字节序Big-Endian 和小端字节序Little-Endian。大端字节序是指一个整数的最高位字节23 ~ 31 bit存储在内存的低地址处低位字节0 ~ 7 bit存储在内存的高地址处小端字节序则是指整数的高位字节存储在内存的高地址处而低位字节则存储在内存的低地址处。 字节序举例 /* 字节序字节在内存中存储的顺序。小端字节序数据的高位字节存储在内存的高位地址低位字节存储在内存的低位地址大端字节序数据的低位字节存储在内存的高位地址高位字节存储在内存的低位地址 */// 通过代码检测当前主机的字节序 #include stdio.hint main() {//联合体直接创建它的变量testunion {short value; // 2字节char bytes[sizeof(short)]; // char[2]} test;test.value 0x0102;if((test.bytes[0] 1) (test.bytes[1] 2)) {printf(大端字节序\n);} else if((test.bytes[0] 2) (test.bytes[1] 1)) {printf(小端字节序\n);} else {printf(未知\n);}return 0; } 4.10字节序转换函数 当格式化的数据在两台使用不同字节序的主机之间直接传递时接收端必然错误的解释之。解决问题的方法是发送端总是把要发送的数据转换成大端字节序数据后再发送而接收端知道对方传送过来的数据总是采用大端字节序所以接收端可以根据自身采用的字节序决定是否对接收到的数据进行转换小端机转换大端机不转换。 网络字节顺序是 TCP/IP 中规定好的一种数据表示格式它与具体的 CPU 类型、操作系统等无关从而可以保证数据在不同主机之间传输时能够被正确解释网络字节顺序采用大端排序方式。 BSD Socket提供了封装好的转换接口方便程序员使用。包括从主机字节序到网络字节序的转换函数htons、htonl从网络字节序到主机字节序的转换函数ntohs、ntohl。 h - host 主机主机字节序 to - 转换成什么 n - network 网络字节序 s - short unsigned int 2字节 l - long unsigned int /*网络通信时需要将主机字节序转换成网络字节序大端另外一段获取到数据以后根据情况将网络字节序转换成主机字节序。// 转换端口uint16_t htons(uint16_t hostshort); // 主机字节序 - 网络字节序uint16_t ntohs(uint16_t netshort); // 网络字节序 - 主机字节序// 转IPuint32_t htonl(uint32_t hostlong); // 主机字节序 - 网络字节序uint32_t ntohl(uint32_t netlong); // 网络字节序 - 主机字节序端口和IP的区别只是数据长度不同。端口都是2字节而IP是4字节 */#include stdio.h #include arpa/inet.hint main() {// htons 转换端口unsigned short a 0x0102;printf(a : %x\n, a);unsigned short b htons(a);printf(b : %x\n, b);printf(\n);// htonl 转换IPchar buf[4] {192, 168, 1, 100};int num *(int *)buf;int sum htonl(num);unsigned char *p (char *)sum;printf(%d %d %d %d\n, *p, *(p1), *(p2), *(p3));printf(\n);// ntohlunsigned char buf1[4] {1, 1, 168, 192};int num1 *(int *)buf1;int sum1 ntohl(num1);unsigned char *p1 (unsigned char *)sum1;printf(%d %d %d %d\n, *p1, *(p11), *(p12), *(p13));// ntohsreturn 0; }
http://www.dnsts.com.cn/news/170750.html

相关文章:

  • 深圳集团网站建设公司软装设计方案ppt
  • 建设厅网站账户名忘记了怎么办南昌正规网站公司吗
  • 网站建立有哪些功能深圳带停机坪的别墅
  • 广州网站设计推荐柚米建设通网站官网登录
  • 铜仁建设集团招聘信息网站修改目录wordpress
  • html5网站建设基本流程做商城网站系统
  • 郑州高端建站国内品牌设计公司
  • 网站建设价格济南网站建设 前沿文章
  • 网站title修改门户网站等保二级建设方案
  • 温州网站网站建设做网站设计的价格
  • 网站前端wordpress sql 导入
  • 如何快速新建一个网站抵押网站建设方案
  • 网站建设营销策划书广州做模板网站的公司
  • 产品网站策划书方案整站下载器 安卓版
  • 云南网站建设专家中国企业网聚焦中原
  • 上传网站到虚拟主机wordpress图片放七牛云
  • 如何自己建设一个网站优惠卷网站怎么做推广
  • 网站开发合作协议书网站内容管理系统 下载
  • 开源建站工具app推广方案策划
  • 如何建设手机网站首页产品结构设计
  • 网站建设业务饱和了吗站长工具seo综合查询怎么关闭
  • 现在.net做网站的多吗创新驱动发展战略的意义
  • 武安城乡建设网站淘宝客不建立网站怎么做
  • 北京网站设计公司招聘信息女生学网站设计
  • 北京网站建设厂家网页显示站点不安全
  • 免费企业网站模板htmlwordpress登录logo
  • 深圳flash网站建设xxx网站建设与优化推广
  • 外国网站 dns解析失败网站查询ip解析
  • 品牌网站设计提案徐州免费网站建设模板
  • 网站建设公司不能备案吗园岭网站建设