在工作中,我遇到了要发送一个稍微复杂点的消息,因为刚整C#,所以很多不了解。
在C#中,udp的数据传输是以byte[]形式传输的,但当要发送复杂写的消息时怎么办,C#中是没有现成函数把这些数据转换成byte[]的,那么这里就需要我们自己来处理一下。
后来我在网上找了一些资料,也问了一些整C#的同事,然后自己封装了个消息的处理。
下面贴出来个demo,也供那些与我一样遇到这个问题的朋友一起分享下。
有不合理的地方,有大神看到也说出来,一起学习下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace StructToByets
{
class Program
{
static void Main(string[] args)
{
Msg msg = new Msg();
msg.msg_len = Marshal.SizeOf(msg);
msg.msg_type = msg.type;
byte[] bytes = StructToBytes(msg);
}
#region 结构体转byte数组
public static byte[] StructToBytes(object obj)