linux网络编程之字节序
进程间通信
特点:依赖于内核,造成缺陷——无法实现多机通信。
网络编程
地址:由IP地址和端口号构成,端口号用来判断客户端接入哪个服务器。
数据的交流:涉及到协议(http,tcp,udp),其实就是数据的格式,双方约定某种协议进行通信。
linux网络编程:涉及到tcp协议和udp协议。
socket套接字:用的最多的就是tcp协议和udp协议,其中tcp协议是面向连接的,udp是面向报文的,连接不可靠,但是udp的数据量很大,内存响应快,做精细操作一般用tcp协议,数据量大的话就用udp协议。
字节序
字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。
常见序
1. Little endian:(小端字节序)将低序字节存储在起始地址
2. Big endian:(大端字节序)将高序字节存储在起始地址
LE little-endian
最符合人的思维的字节序,地址低位存储值的低位,地址高位存储值的高位
怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说低位值小,就应该放在内存地址小的地方,也即内存地址低位
反之,高位值就应该放在内存地址大的地方,也即内存地址高位
BE big-endian
最直观的字节序,地址低位存储值的高位,地址高位存储值的低位
为什么说直观,不要考虑对应关系,只需要把内存地址从左到右按照由低到高的顺序写出把值按照通常的高位到低位的顺序写出
两者对照,一个字节一个字节的填充进去
例子:
在内存中双字(双字就是32位)0x01020304(DWORD)的存储方式
内存地址
4000&4001&4002&4003
LE 04 03 02 01
BE 01 02 03 04
例子:
如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为
big-endianlittle-endian
0x0000 0x12 0xcd
0x0001 0x34 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12
x86系列CPU都是little-endian的字节序.
网络字节序=大端字节序
linux网络编程之字节序相关推荐
- python3 网络编程 主机字节序 网络字节序 相互转换
编写底层低层网络应用时,或许需要处理通过电缆在两台设备之间传送的低层数据.在这种操作中,需要把主机操作系统发出的数据转换成网络格式,或者做逆向转换,因为这两种数据的表示方式不一样. 1. 代码 # 主 ...
- 网络编程之 字节序和深入理解bind()函数
在上一篇博客里,大家也许会对htons()感到疑惑吧,其实就是字节序的转换,所以这篇博客我们就来详细的解释一下什么是字节序. 也就是让大家对 bind函数有更加深刻而性感的认识 计算机是小端字节序,网 ...
- Linux网络编程——字节序与网络字节序
说明: 本文章旨在总结备份.方便以后查询,由于是个人总结,如有不对,欢迎指正:另外,内容大部分来自网络.书籍.和各类手册,如若侵权请告知,马上删帖致歉. QQ 群 号:513683159 [相 ...
- Linux网络编程实例分析
最近由于工作原因需要温习一下Linux网络编程的部分基础知识,因此对之前写的Socket网络通信的代码进行了进一步优化和拓展,在不关闭一次Socket连接的基础上,对服务端加入循环读写的功能,同时加入 ...
- [Linux网络编程学习笔记]套接字地址结构
好久没有看那Linux网络编程这本书了,今天看到了重点部分-TCP套接字.下面先来看看套接字的地址结构 Linux系统的套接字可以支持多种协议,每种不同的协议都是用不同的地址结构.在头文件<li ...
- 【Linux】一步一步学Linux网络编程教程汇总(更新中......)
00. 目录 文章目录 00. 目录 01. 基础理论知识 02. 初级编程 03. 高级编程 04. LibEvent库 05. 06. 07. 01. 基础理论知识 [Linux网络编程]网络协议 ...
- 【Linux网络编程】无连接和面向连接协议
00. 目录 文章目录 00. 目录 01. 概述 02. 附录 01. 概述 网络编程中最基本的概念就是面向连接(connection-oriented)和无连接(connectionless)协议 ...
- Linux网络编程——黑马程序员笔记
01P-复习-Linux网络编程 02P-信号量生产者复习 03P-协议 协议: 一组规则. 04P-7层模型和4层模型及代表协议 分层模型结构: OSI七层模型: 物.数.网.传.会.表.应TCP/ ...
- Linux网络编程——原始套接字编程
Linux网络编程--原始套接字编程 转自:http://blog.csdn.net/tennysonsky/article/details/44676377 原始套接字编程和之前的 UDP 编程差不 ...
最新文章
- java param request_SpringMvc之@RequestParam详解
- 微信支付:小微商户申请入驻第二步:图片上传
- json 数据 生成 图表_CAPP工艺图表 / 知识重用 快速编制
- php artisan 命令
- 3d饼图 vue_怎么实现一个3d翻书效果
- 和为s的两个数字 - 双指针
- SQL面试题--(26~46)
- [软件更新]迅雷(Thunder)5.9.2.927版本发布
- Postman API 开发的协作平台
- Java-密钥keytool及KeyStore的使用
- ssm运动器材共享平台毕业设计源码201816
- 【解决】瑞星杀毒软件无法卸载,rising进程无法关闭
- 2021.11.19【读书笔记】丨snakemake常见问题汇总(下)
- QDockWidget增加边框
- 数据库开启遇到的keng
- 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法
- 2020年wordpress主题开发视频教程、WP主题WP模板开发视频教程
- C++设计模式——桥接模式(高屋建瓴)
- MRS离线数据分析:通过Flink作业处理OBS数据
- 读手语图像识别论文笔记
热门文章
- 【TensorFlow】——不同shape的tensor在神经网络中的应用(scalar,vector,matrix)
- 最优化课堂笔记03:整数规划
- C++ STL实现的优先队列( priority_queue )
- windows系统环境变量过长解决方案(PATH too long installer unable to modify Path)
- unity让对象作为参数_unity-container – 一个unity容器可以将自身的引用作为构造函数参数传递吗?...
- 匈牙利命名法为何被淘汰_为何甲烷的习惯命名法用甲烷而不是一烷?
- ole2高级编程技术 pdf_21天快速掌握Python语言,《21天学通Python》PDF版送给你去学...
- Pytorch 自定义激活函数前向与反向传播 ReLu系列 含优点与缺点
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波5 - 分段线性变换 - 灰度级分层
- robotframework调用python类方法_RobotFramework-调用.py文件