Linux 网络编程 和 字节序的概念

这篇具有很好参考价值的文章主要介绍了Linux 网络编程 和 字节序的概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络编程概述

不同于之前学习的所有通讯方法,多基于Linux内核实现,只能在同一个系统中不同进程或线程间通讯,Linux的网络编程可以实现真正的多机通讯!

两个不相关的终端要实现通讯,必须依赖网络,通过地址来找到对方,所谓地址包含的两个重要概念就是 IP地址端口号

一台拥有IP地址的主机可以提供许多服务,比如Web服务,FTP服务,SMTP服务等,这些服务完全可以通过一个IP地址来实现,所以还需要一个端口号来确定访问通道

服务器一般是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号是21,每个Telnet服务器的TCP端口号是23 等等...

当通过地址找到彼此之后,数据的交流格式就叫协议。协议有很多种,比如http, tcp, udp等等,他们都有各自的数据格式。

其实之前学习的单片机和PC机的通讯就是基于串口协议,也就是8位数据位,是否奇偶校验位等等...

  • TCP协议:面向连接的,发送数据前需要保证连接,可靠但数据量小,只能1对1通讯
  • UDP协议:面向报文的,不关心对方是否准确收到,不可靠但数据量大,支持N对M的交互通讯

而不管是TCP协议还是UDP协议,都可以结合socket网络编程来学习。

字节序

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

概念回顾:1个字节 = 1个Byte = 8个bit = 8位

常见序:

  • Little endian:小端字节序:将低续字节存储在起始地址
  • Big endian:大端字节序:将高序字节存储在起始地址

Linux 网络编程 和 字节序的概念,linux,网络,运维,系统编程,Linux

注意!!

网络字节序 = 大端字节序

x86系统的CPU = 小端字节序

所以网络字节序和电脑的字节序是相反的!

这是在网络编程中需要注意的很重要的一点!

 文章来源地址https://www.toymoban.com/news/detail-671466.html

 

到了这里,关于Linux 网络编程 和 字节序的概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统应用编程(五)Linux网络编程(上篇)

    1.两个网络模型和常见协议 (1)OSI七层模型(物数网传会表应) 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层(自下到上) (2)TCP/IP四层模型(网网传应) 网络接口层(链路层)、网络层、传输层、应用层 (3)常见网络协议所属层 2.字节序 (1)两种

    2023年04月25日
    浏览(39)
  • 【Linux网络编程】网络编程套接字二

    喜欢的点赞,收藏,关注一下把! TCP和UDP在编程接口上是非常像的,前面我们说过TCP是面向连接的,UDP我们上篇博客也写过了,我们发现UDP服务端客户端写好启动直接就发消息了没有建立连接。TCP是建立连接的,注定在写的时候肯定有写不一样的地方。具体怎么不一样,我们

    2024年04月15日
    浏览(64)
  • Linux网络编程——UDP编程

    1、UDP通信协议,服务器端和客户端无需建立连接,只需要知道对方套接字的地址信息就可以发送数据 2、UDP通信流程图: 功能:创建套接字并返回套接字描述符 功能:将套接字与IP地址和端口号绑定 功能:发送数据 功能:接收数据 功能:关闭套接字 1、代码功能:两个进程

    2023年04月19日
    浏览(46)
  • Linux网络编程:网络基础

    文章目录: 一:协议   二:网络应用设计模式_BS模式和CS模式 三:网络分层模型(OSI七层 TCP/IP四层) 四:通信过程 五:协议格式  1.数据包封装 2.以太网帧格式和ARP数据报格式  3.IP段格式  4.UDP数据报格式 5.TCP数据报格式 六:TCP协议 1.TCP通信时序(面向连接的可靠数据通

    2024年02月12日
    浏览(83)
  • linux【网络编程】之网络基础

    “协议” 是一种约定 软件设计方面的优势—低耦合 分层依据:功能比较集中,耦合度较高的模块—高内聚 每一层都要解决特定的问题 每一层都有自己匹配的协议,每一层协议都解决自己的问题 OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参

    2024年02月04日
    浏览(54)
  • Linux网络编程 网络基础知识

    目录 1.网络的历史和协议的分成 2.网络互联促成了TCP/IP协议的产生 3.网络的体系结构 4.TCP/IP协议族体系 5.网络各层的协议解释 6.网络的封包和拆包 7.网络预备知识      Internet-\\\"冷战\\\"的产物 1957年十月和十一月,前苏联先后欧两颗”Spuinik”卫星上天 1958年美国总统艾森豪威尔向

    2024年02月10日
    浏览(48)
  • 【Linux网络编程】网络基础一

    从今天开始我们将要从系统横跨到网络的学习了,因此有些书我们就可以读起来了。 操作系统 原理: 《操作系统精髓与设计原理》、《现代操作系统》 Linux原理方面的书 : 《Linux内核设计与实现》–陈莉君、《深入理解Linux内核》(选读–不作为重点) Linux编程方面的书: 《

    2024年04月15日
    浏览(59)
  • 【网络编程】Linux网络编程基础与实战第三弹——网络名词术语

    数据包从源地址到目的地址所经过的路径,由一系列路由节点组成。 某个路由节点为数据包选择投递方向的选路过程。 路由器工作原理 路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。

    2024年02月08日
    浏览(46)
  • Linux网络编程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇

    2024年01月24日
    浏览(38)
  • linux 网络编程

    网络通信手段的一种,我们在之前学了进程间通信,包括管道、消息队列、共享内存、信号和信号量,这些通信方式有一个共同的特点,就是他们都是在依赖Linux内核在单机上进行进程的通信,而面对多机之间的通信,这些手段就远远不够了。所以我们引入网络,利用网络来

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包