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

赌求网站开发网站转换小程序

赌求网站开发,网站转换小程序,荥阳网站建设公司,wordpress 调用随即文章目录 一、BSD套接字接口1.1 套接字类型1.2 套接字的位置 二、字节序2.1 大小端2.2 大小端判断2.3 主机字节序和网络字节序2.4 字节序转换函数 一、BSD套接字接口 BSD套接字接口是BSD的进程间通信的方式,它不仅支持各种形式的网络应用而且它还是一种进程间通信的机制…

目录

  • 一、BSD套接字接口
    • 1.1 套接字类型
    • 1.2 套接字的位置
  • 二、字节序
    • 2.1 大小端
    • 2.2 大小端判断
    • 2.3 主机字节序和网络字节序
    • 2.4 字节序转换函数

一、BSD套接字接口

BSD套接字接口是BSD的进程间通信的方式,它不仅支持各种形式的网络应用而且它还是一种进程间通信的机制。一个套接字描述一个
通信连接的一-端,两个相互通信的进程,每个都需要-一个套接字描述它们之间的通信连接的端点。套接字可以看成是一种特殊的管道,与管道不同的是套接字所能容纳的数据不受限制。

1.1 套接字类型

Linux BSD支持如下类型的套接字:
(1) 流式套接字(SOCK_STREAM) 。这个套接字提供了两个方向的序列数据流,这些数据流保证在传输过程中数据不丢失、破坏或重复。数据流套接字由Internet (INET)地址族的TCP协议所支持。
(2) 数据报套接字(SOCK_DGRAM) 。这个套接字也提供两个方向上的数据传送,但不像数据流套接字,它们不提供消息到达的保证。即使到达也不保证这些数据包按照一定的顺序到达或丢失、重复。这种类型的套接字由Internet 地址族的UDP协议所支持。
(3) 原始套接字(SOCK_RAW)。这种类型的套接字允许进程直接访问底层协议。例如,可以为以太网设备打开一个Raw Socket,以使用原始IP数据

利用套接字进行通信的进程采用客户机/服务器(C/S)模式。服务器提供服务而客户机则使用服务器提供的服务。使用套接字的服务器首先建立一个套接字,然后用一个名称对这个套接字进行绑定。这个名称的格式独立于套接字的地址族,它是有效的服务器的本地地址。套接字的名称或地址由sockaddr 结构来指定,一个INET套接字由一个IP端口地址与之绑定。常用服务的注册端口可以在/etc/services中看到,例如,端口80是Web服务器的特定端口。当给一个套接字绑定一个地址后,服务器侦听输入请求指定的绑定地址的连接。客户建立一个套接字和一个基于它的连接请求,这个连接请求指定目的服务器的地址。对一个INET套接字来讲,服务器的地址是它的IP地址和端口号。这些传入的请求必须通过各种不同的协议层向上找到自己的通路,然后等待服务器侦听套接字。一旦服务器收到请求,它要么接收要么拒绝。如果传入请求将被接收,服务器必须建立一个新的套接字用来接收。如果一个套接字已经用来侦听传入的连接请求,那么它不能用来支持一个连接。

1.2 套接字的位置

在这里插入图片描述

二、字节序

字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。

2.1 大小端

按字节的排列顺序可分为如下两种:

  • 小端序(little-endian) - 低序字节存储在低地址 (主机字节序)
  • 大端序(big-endian)- 高序字节存储在低地址 (网络字节序)

2.2 大小端判断

写一个函数,判断当前主机的字节序?
有三种测试方式:

  1. 指针强转
  2. 共用体测试
  3. 数据类型强转
    在这里插入图片描述

2.3 主机字节序和网络字节序

Linux系统和Windows系统的数据是小端存储的,存放于本地计算机的字节序可以成为主机字节序;网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用大端(big endian)排序方式。

2.4 字节序转换函数

  1. 主机字节序 → 网络字节序
    u_long htonl (u_long hostlong);
    u_short htons (u_short short); //掌握这个
  2. 网络字节序 → 主机字节序
    u_long ntohl (u_long hostlong);
    u_short ntohs (u_short short);
  3. IP地址转换(点分十进制←→网络字节序)
    typedef uint32_t in_addr_t;
    struct in_addr {
    in_addr_t s_addr;
    };
    in_addr_t inet_addr(const char *cp); // 点分十进制字符串IP地址转为32位无符号整数网络字节序
    char *inet_ntoa(struct in_addr in); // 从网络字节序转为点分十进制字符串IP地址

例子:
在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/382327/

相关文章:

  • 电子商务网站的建设流程是怎样的响应式布局的原理
  • 免费建立平台网站咸宁做网站哪家好
  • 做英文网站要多少钱wordpress怎么安装导航
  • 外贸网站用什么字体百度app智能小程序
  • 云南省网站备案北京网站建设品牌
  • 用php做的博客网站wordpress中文书籍
  • 网站上做的广告有哪些种flash优秀网站
  • 做电子商务网站的意义怎么看自己做没做网站地图
  • 用什么程序做网站好百度快照优化
  • 一站式网页设计服务平台wordpress电视直播插件
  • 宜昌市建设局网站网页设计个人网站心得体会
  • 男科医院网站建设策略商标注册网上
  • 做网站最少几个页面洛阳网站建设哪家权威
  • 怎样在网上做环保设备网站徐州自助建站系统
  • 做企业网站设计无锡百度搜索排名优化
  • php美食网站开发的意义蒲城县住房和城乡建设局网站
  • 建设银行北海分行网站企业网站推广方案上海
  • 网站上动态图片怎么做哪个跨境电商平台好做
  • 旅游宣传网站建设方案做装修哪个网站推广好
  • 网站的ftp账号和密码是什么珠海手机微信网站建设小程序开发
  • 帮传销做网站会违法吗区块链开发
  • 夜来香广州网站大丰企业做网站多少钱
  • 厦门购买域名以后搭建网站网站怎么做动态图片
  • 网站建设实例教程wordpress文章站
  • 云南哪有网站建设推广房地产网站素材
  • jsp做的网站带数据库网站试运营
  • 青岛网站优化联系方式网络服务提供者知道或者应当知道网络用户利用其网络服务侵害他
  • 苏州网站开发公司兴田德润优惠吗世界500强企业排名中国名单
  • 备案后修改网站内容毕节市住房和城乡建设局网站
  • 网站建设的概念动画制作物语