Socket 一个数据包应该怎样表示 我现在要做一个简单的tcp通讯 发送这种类型的数据包请问这种数据应该怎样来定义?sockettcp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //定义数据段类型枚举public enum Type { zdfs } public class Test { public void aaa() { byte[] send = new byte[1024 * 10]; //打包后的字节数组 string baoliu1 = "aa"; //保留字段一 string baoliu2 = "bb"; //保留字段二 string tdId = "123"; //通道编号 ushort stPoint = 1; //温度开始点 ushort sjjg = 1; //数据点间隔 ushort sjdgs = 1; //数据点个数 int cjjgcs = 1; //采集间隔次数 int typeLen = 4; //枚举值长度为4 如果传字符串就参考保留字节的传法 byte[] typeByte = BitConverter.GetBytes(Convert.ToInt32(Type.zdfs)); int baoliu1Len = baoliu1.Length; //保留字段一的长度 byte[] baoliu1LenByte = BitConverter.GetBytes(baoliu1Len);//长度数组 byte[] baoliu1Byte = Encoding.UTF8.GetBytes(baoliu1); //保留字段一本身的数组 int baoliu2Len = baoliu2.Length; byte[] baoliu2LenByte = BitConverter.GetBytes(baoliu2Len); byte[] baoliu2Byte = Encoding.UTF8.GetBytes(baoliu2); int tdIdLen = tdId.Length; byte[] tdIdLenByte = BitConverter.GetBytes(tdIdLen); byte[] tdIdByte = Encoding.UTF8.GetBytes(tdId); byte[] stPointByte = BitConverter.GetBytes(stPoint); //固定长度为4 byte[] sjjgByte = BitConverter.GetBytes(sjjg); //固定长度为4 byte[] sjdgsByte = BitConverter.GetBytes(sjdgs); //固定长度为4 byte[] cjjgcsByte = BitConverter.GetBytes(cjjgcs); //固定长度为4 typeByte.CopyTo(send, 0); baoliu1LenByte.CopyTo(send, 4); baoliu2LenByte.CopyTo(send, 8); tdIdLenByte.CopyTo(send, 12); stPointByte.CopyTo(send, 28); sjjgByte.CopyTo(send, 32); sjdgsByte.CopyTo(send, 36); cjjgcsByte.CopyTo(send, 40); } }int typeLen=Convert.ToInt32(Type.zdfs);byte[] typeLenByte= BitConvert 除了Array.Copy以外,你也可以: new MemoryStream() 对象实例,然后调用它的 write() 方法顺序写入数据,写完之后调用其 ToArray() 方法得到合成之后的 byte[]。 c#如何從Excel中讀取圖片 【倾分求助】关于datagridview分组打印的问题:水晶报表?RDLC?其他方式? c#做嵌入式开发,看到必进! 用c#写了一个telnet程序,远程连接时中文显示为乱码 vs2003下,有个快捷键可以刷新代码的格式怎么写 {0:#}中的“#”表示什么意思? 如何用c#截取 ListView的一个问题!!! 设计模式 求解下面两个技术性的问题: 如何写一个程序用来将文本自动填写到另一个程序的文本框内? 100分!!!紧急求助,Byte转String不完全
//定义数据段类型枚举
public enum Type
{
zdfs
} public class Test
{
public void aaa()
{
byte[] send = new byte[1024 * 10]; //打包后的字节数组
string baoliu1 = "aa"; //保留字段一
string baoliu2 = "bb"; //保留字段二
string tdId = "123"; //通道编号
ushort stPoint = 1; //温度开始点
ushort sjjg = 1; //数据点间隔
ushort sjdgs = 1; //数据点个数
int cjjgcs = 1; //采集间隔次数 int typeLen = 4; //枚举值长度为4 如果传字符串就参考保留字节的传法
byte[] typeByte = BitConverter.GetBytes(Convert.ToInt32(Type.zdfs)); int baoliu1Len = baoliu1.Length; //保留字段一的长度
byte[] baoliu1LenByte = BitConverter.GetBytes(baoliu1Len);//长度数组
byte[] baoliu1Byte = Encoding.UTF8.GetBytes(baoliu1); //保留字段一本身的数组 int baoliu2Len = baoliu2.Length;
byte[] baoliu2LenByte = BitConverter.GetBytes(baoliu2Len);
byte[] baoliu2Byte = Encoding.UTF8.GetBytes(baoliu2); int tdIdLen = tdId.Length;
byte[] tdIdLenByte = BitConverter.GetBytes(tdIdLen);
byte[] tdIdByte = Encoding.UTF8.GetBytes(tdId); byte[] stPointByte = BitConverter.GetBytes(stPoint); //固定长度为4 byte[] sjjgByte = BitConverter.GetBytes(sjjg); //固定长度为4 byte[] sjdgsByte = BitConverter.GetBytes(sjdgs); //固定长度为4 byte[] cjjgcsByte = BitConverter.GetBytes(cjjgcs); //固定长度为4 typeByte.CopyTo(send, 0);
baoliu1LenByte.CopyTo(send, 4);
baoliu2LenByte.CopyTo(send, 8);
tdIdLenByte.CopyTo(send, 12);
stPointByte.CopyTo(send, 28);
sjjgByte.CopyTo(send, 32);
sjdgsByte.CopyTo(send, 36);
cjjgcsByte.CopyTo(send, 40); }
}int typeLen=Convert.ToInt32(Type.zdfs);
byte[] typeLenByte= BitConvert