首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 写网络通信程序时怎么取得协议包的byte[]字节数组呢

2012-01-08 
C# 写网络通信程序时如何取得协议包的byte[]字节数组呢?#pragmapack(1)typedefstructpacket{charcommand_l

C# 写网络通信程序时如何取得协议包的byte[]字节数组呢?
#pragma   pack(1)
typedef   struct   packet
{
char           command_length[4];
char         category[2];
char   sub_command[2];
char   opcode[4];
char           command_status[4];
char   sou_addr[6];
char           des_addr[6];
char           seq_no[10];
uint   datalen;
char   reserve[1];
}pack;
#pragma   pack()
在vc中直接给packet   结构体的成员变量付值后就可以利用指针取sizeof(packet)大小的字节数组给

socket发送了,在C#中有什么针对这种协议直接装化成byte[]的方法呢?
请大侠帮忙给个代码示例,谢谢!

[解决办法]
string mstr = "aaa ";
byte[] mbyte = Encoding.ASCII.GetBytes(mstr);
[解决办法]
这个做法不行。

用指针吧,

System.Runtime.InteropServices.Marshal

public static void StructureToPtr ( System.Object structure , System.IntPtr ptr , System.Boolean fDeleteOld )

public static System.Object PtrToStructure ( System.IntPtr ptr , System.Type structureType )

热点排行