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

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(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[]

以上是关于(14)C#的网络接收和发送的各种大小端字节转换的主要内容,如果未能解决你的问题,请参考以下文章

TCP网络通讯如何解决分包粘包问题(有模拟代码)

C#网络编程学习---序列化和反序列化

UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize

C#里分割字符串和字符串转换为网络发送字节数组的方法

c语言和java 使用socket通信的时候 数据大小端转换的问题

网络字节序&大小端存储