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

绍兴seo整站优化/百度关键词优化工具

绍兴seo整站优化,百度关键词优化工具,东莞手工外发加工网,微网站价格文章目录1.Socket 简介1.1 什么是Socket1.2 Socket类型1.3 Socket的位置2. IP地址2.1 特殊IP地址:2.2 IP地址的转换2.3 端口号3. 字节序3.1 字节序转换函数1.Socket 简介 是一个应用编程接口 是一种特殊的文件描述符 (everything in Unix is a file) 对它执行IO的操作函数&…

文章目录

  • 1.Socket 简介
    • 1.1 什么是Socket
    • 1.2 Socket类型
    • 1.3 Socket的位置
  • 2. IP地址
    • 2.1 特殊IP地址:
    • 2.2 IP地址的转换
    • 2.3 端口号
  • 3. 字节序
    • 3.1 字节序转换函数

1.Socket 简介

  • 是一个应用编程接口

  • 是一种特殊的文件描述符 (everything in Unix is a file)
    对它执行IO的操作函数,比如,read(),write(),close()等操作函数

  • 并不仅限于TCP/IP协议

  • 面向连接 (Transmission Control Protocol - TCP/IP)

  • 无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange -IPX)

1.1 什么是Socket

  • 独立于具体协议的网络编程接口

  • 在OSI模型中,主要位于会话层和传输层之间

  • BSD Socket(伯克利套接字)是通过标准的UNIX文件描述符和其它程序通讯的一个方法,目前已经被广泛移植到各个平台。

1.2 Socket类型

  • 流式套接字(SOCK_STREAM)
    提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。

  • 数据报套接字(SOCK_DGRAM)
    提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。

  • 原始套接字(SOCK_RAW)
    可以对较低层次协议如IP、ICMP直接访问。

1.3 Socket的位置

在这里插入图片描述

2. IP地址

  • IP地址是Internet中主机的标识
    Internet中的主机要与别的机器通信必须具有一个IP地址
    IP地址为32位(IPv4)或者128位(IPv6)
    每个数据包都必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包选择路由

  • 表示形式:常用点分形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。

  • IP地址分类

2.1 特殊IP地址:

  1. 局域网IP:
  • 192.XXX.XXX.XXX
  • 10.XXX.XXX.XXX
  1. 广播IP:
  • xxx.xxx.xxx.255
  • 255.255.255.255(全网广播)
  1. 组播IP:
  • 224.XXX.XXX.XXX~239.xxx.xxx.xxx

2.2 IP地址的转换

#include <arpa/inet.h>

int inet_aton(const char *strptr, struct in_addr *addrptr);    

将strptr所指的字符串转换成32位的网络字节序二进制值**

int_addr_t inet_addr(const char *strptr);
  1. 功能同上,返回转换后的地址。
  2. strptr是以’\0’结尾的IPv4点分形式的IP地址字符串,该函数返回结果是32位的整数地址,
    如果字符串包含的不是合法的IP地址,则函数返回-1。(内部包含了字节序的转换,默认是网络字节序的模式)
    特点:
    仅适应于IPV4
    当出错时,返回-1(在计算机内存储是补码的形式255.255.255.255)
    此函数不能用于255.255.255.255的转换
    例如:
    struct in_addr addr;
    addr.s_addr = inet_addr(" 192.168.1.100 ");

char *inet_ntoa(stuct in_addr inaddr);

  1. 将32位网络字节序二进制地址转换成点分十进制的字符串。
  2. inaddr是IPv4地址结构,函数返回一指向包含点分IP地址的静态存储区字符指针。如果错误则函数返回NULL

int inet_pton(int af, const char *src, void *dst);

  1. 将IPV4/IPV6的地址转换成binary格式(内部包含了字节序的转换,默认是网络字节序的模式)
  2. 能正确的处理255.255.255.255的转换问题
  3. 参数:
    af: 地址协议族(AF_INET或AF_INET6)
    src:是一个指针(填写点分形式的IP地址[主要指IPV4])
    dst: 转换的结果给到dst
  4. 返回值
    inet_pton() returns 1 on success (network address was successfully con‐verted). 0 is returned if src does not contain a character string representing a valid network address in the specified address family. If af does not contain a valid address family, -1 is returned and errno is set to EAFNOSUPPORT.

#include <arpa/inet.h>
const char *inet_ntop(int af, const void *src,char *dst, socklen_t size);

  1. 将IPV4/IPV6的网络字节序地址,变成本地的字符串形式的IP地址
  2. 能正确的处理(-1)255.255.255.255的转换问题
  3. 参数:
    af: 地址协议族(AF_INET或AF_INET6)
    src:是一个指针(32位的网络字节序IP地址)
    dst: 转换的结果为点分形式的IP地址[主要指IPV4]
    size:src的长度
  4. 返回值
    ·On success, inet_ntop() returns a non-NULL pointer to dst.
    ·NULL is returned if there was an error, with errno set to indicate the error.

2.3 端口号

  • 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区别

  • TCP端口号与UDP端口号独立

  • 端口号一般由IANA (Internet Assigned Numbers Authority) 管理
    众所周知端口:1 ∼ 1023(1 ∼ 255之间为众所周知端口,256~1023端口通常由UNIX系统占用。
    FTP: 21,SSH: 22, HTTP:80, HTTPS:469)
    ·注册端口(保留端口):1024~49150
    ·动态或私有端口:49151~65535
    保留端口: 1024-5000(不建议使用)
    可以使用的:5000~65535

    在这里插入图片描述

在这里插入图片描述

端到端通信数据包投递过程
在这里插入图片描述

如果把网络数据包的投递过程看成是给远方的一位朋友寄一封信,那么:
IP地址就是这位朋友的所在位置,如上海交大XX系,邮局依靠此信息进行信件的投递,网络数据则依靠IP地址信息进行路由

端口号就是这位朋友的名字,传达室依靠这个信息最终把这封信交付给这位收信者,数据包则依靠端口号送达给接收进程

3. 字节序

不同类型CPU的主机中,内存存储多字节整数序列有两种方法,称为主机字节序(HBO):

小端序(little-endian) - 低序字节存储在低地址
将低字节存储在起始地址,称为“Little-Endian”字节序,Intel、AMD等采用的是这种方式;
大端序(big-endian)- 高序字节存储在低地址
将高字节存储在起始地址,称为“Big-Endian”字节序,由ARM、Motorola等所采用

网络中传输的数据必须按网络字节序,即大端字节序

在大部分PC机上,当应用进程将整数送入socket前,需要转化成网络字节序;当应用进程从socket取出整数后,要转化成小端字节序

网络字节序(NBO - Network Byte Order)
使用统一的字节顺序,避免兼容性问题

主机字节序(HBO - Host Byte Order)
不同的机器HBO是不一样的,这与CPU的设计有关
Motorola 68K系列HBO与NBO是一致的
Intel X86系列和ARM系列,HBO与NBO不一致

3.1 字节序转换函数

把给定系统所采用的字节序称为主机字节序。为了避免不同类别主机之间在数据交换时由于对于字节序的不同而导致的差错,引入了网络字节序。

主机字节序到网络字节序

u_long htonl (u_long hostlong);
u_short htons (u_short short);

网络字节序到主机字节序

u_long ntohl (u_long hostlong);
u_short ntohs (u_short short);

在这里插入图片描述

http://www.lbrq.cn/news/799453.html

相关文章:

  • 福建住房和建设网站密码忘记/百度站长平台注册
  • 企业网站模板建站怎么用/厦门seo外包公司
  • 网站备案流程公安/福州网络推广运营
  • 江西网站建设技术/刘连康seo培训哪家强
  • 哈尔滨网站制作招聘/青岛关键词优化报价
  • 如何修改英文WordPress主题首页/开鲁网站seo转接
  • 无icp备案的网站合法吗/排名优化网站建设
  • 在淘宝上的毕设网站代做/小红书推广策略
  • 美术馆网站建设/网络软文营销的案例
  • 租房子做民宿在哪个网站/7个湖北seo网站推广策略
  • 宠物医院网站建设/做seo是什么意思
  • 南通做外贸网站/营销培训方案
  • wordpress 禁止草稿/北京网站优化指导
  • 电脑做视频的网站/利尔化学股票股吧
  • html 网站 模板/收录查询
  • 网站建设标准/搜索引擎大全网址
  • 网站录入/关键词完整版
  • 株洲做网站 省心磐石网络/域名查询ip138
  • 解析到网站怎样做/灰色seo关键词排名
  • python 做网站合适吗/全网网站快速排名推广软件
  • 安徽省建设干部学校网站/长春seo关键词排名
  • 网站技术介绍/百度智能云
  • 陕西交通建设集团网站体检/企业建站流程
  • 一个完整网站制作的实例/我要软文网
  • wordpress trac/深圳网站seo公司
  • 南京做信息登记公司网站/怎么去做推广
  • 动画设计师培训/百度seo查询收录查询
  • 济宁做网站多少钱/北京网络推广有哪些公司
  • 个人养老金/百度seo和sem的区别
  • 个人电子邮箱怎么填写格式/seo第三方点击软件
  • Linux 高级 I/O 系统调用详解
  • 3 使用 Jenkins 构建镜像:将你的应用打包成镜像
  • 第15讲——微分方程
  • Transformer架构全解析:搭建AI的“神经网络大厦“
  • 开源医院信息管理系统:基于若依框架的智慧医疗解决方案
  • 关于“LoggerFactory is not a Logback LoggerContext but Logback is on ......“的解决方案