c++接收数据的时候,需要把网络字节序转成主机字节序吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++接收数据的时候,需要把网络字节序转成主机字节序吗相关的知识,希望对你有一定的参考价值。

参考技术A c++接收数据的时候,根据实际情况,把网络字节序转成主机字节序。

(14)C#的网络接收和发送的各种大小端字节转换

由于跨不同的设备进行连接,所以大小端表示的网络协议,就经常会遇到。比如与PLC进行通讯,或者与不同的PC的网络协议通讯。这时候就需要对种数据进行大小端变换,才能把接收到的数据,或者发送过去的数据达到正确的表示。

 

过往对C或C++的方式比较熟悉,但是C#的表示方式又有一些不一样,经过总结和测试,可以归纳为下面的例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

using SuperSocket.SocketBase;

namespace ConsoleApp11
{
    class Program
    {

//        例子:如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为
//      big-endian little-endian
//0x0000   0x12       0xcd
//0x0001   0x23       0xab
//0x0002   0xab       0x34
//0x0003   0xcd       0x12

        static void Main(string[]

以上是关于c++接收数据的时候,需要把网络字节序转成主机字节序吗的主要内容,如果未能解决你的问题,请参考以下文章

《Linux高性能服务器编程》学习总结——Linux网络编程基础API

(14)C#的网络接收和发送的各种大小端字节转换

Linux——网络编程套接字

C/C++ 网络编程字节序的问题

网络I/o编程模型19 netty的编码与解码

什么时候需要高低字节序转换,即ntohs()函数