有没有人知道,如何用C#处理2进制字符串

常宁 2002-04-19 02:46:02
我需要用Socket接收一个数据流,对方是C++,用Socket发送过来一个Buffer,是一个结构体,aaa是一个结构体,buf是发送给我的内容。memcpy(buf,aaa,sizeof(aaa));
我如何用C#接收并处理这个结构体,并取出结构体内的值?
...全文
70 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
常宁 2002-06-11
  • 打赏
  • 举报
回复
结帖
norzss 2002-06-03
  • 打赏
  • 举报
回复
13888657,写错了
norzss 2002-06-03
  • 打赏
  • 举报
回复
hoho,13888567
大家多多交流啦:)
常宁 2002-04-26
  • 打赏
  • 举报
回复
to norzss(zss)
如果能留下QQ号码,这100分就是你的
:)
常宁 2002-04-25
  • 打赏
  • 举报
回复
to okokwukai(不老仙翁)
能不能说的详细些,你说的我早就知道了,但问题是如何方便开发
norzss 2002-04-25
  • 打赏
  • 举报
回复
按照你说的结构(在c++):
struct abc{
int a;
int b;
int c;
char abc[100];
}
在c#中:bytes为你接收到的字节数组:
struct abc
{
int a;
int b;
int c;
char[] abc;
}
abc tag;
tag.a=BitConverter.ToInt32(bytes,0);
tag.b=BitConverter.ToInt32(bytes,4);
tag.c=BitConverter.ToInt32(bytes,8);
tag.abc=new char[bytes.Length-12];
for(int i=0;i<tag.abc.Length; i++)
{
tag.abc[i]=BitConverter.ToChar(bytes,i+12);
}
  • 打赏
  • 举报
回复
对一个流,你可以将其保存在一个byte[](byte数组)中。不管它是什么,只要你知道其结构,就可以转换。
常宁 2002-04-25
  • 打赏
  • 举报
回复
to norzss(zss) ( )
我没有看懂,能否详细说说看?
对于C#我是新手
常宁 2002-04-25
  • 打赏
  • 举报
回复
to norzss(zss) ( )
我没有看懂,能否详细说说看?
对于C#我是新手
常宁 2002-04-24
  • 打赏
  • 举报
回复
to lonk(小鱼) ( )
不能处理C++的结构体Buffer就没有办法同大多数的C++程序通讯,用你的办法不如用XML了,但是C++那边通常不会用XML解析这样的方法,而用习惯上的Struct这时候我的问题就出现了,所以谢谢你,但是你的方法不能解决问题
norzss 2002-04-24
  • 打赏
  • 举报
回复
看可不可以这样做:
bytes为你接受到的字节数组
BitConverter.ToInt32(bytes,index)
BitConverter.ToString(bytes,index)
这样应该比较方便了吧
常宁 2002-04-23
  • 打赏
  • 举报
回复
struct abc{
int a;
int b;
int c;
char abc[100];
}
可以这样假设,实际的差不多。谢谢
lonk 2002-04-23
  • 打赏
  • 举报
回复
hehe,前面我也问过,结果大家告诉我不要这么弄,
所以我只好用个土方法
string msg=a.ToString();
msg+=b.ToString()+'//';
msg+=c.ToString()+'//';
然后再补上char abc,然后把msg转成byte发出去....
等到接受的时候把msg劈开...
MarsXia 2002-04-22
  • 打赏
  • 举报
回复
写出你的结构体先
常宁 2002-04-22
  • 打赏
  • 举报
回复
没人会?
up!!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧