CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

网络程序中报文格式:如果传输一个预先规定好格式的byte[].

楼主hillfree(比较土,请原谅)2002-09-14 12:58:32 在 .NET技术 / C# 提问

用C#写一个网络程序   ,约定好了报文格式:比如(只是一个格式例子)  
  a字串长度(4Bytes)|a字串|b字串长度|b字串|c数字(2Byte)  
   
  请问如何按照上面的规定,把内容写入byte[],传输到对方主机,在如何还原?(Unicode编码格式)  
   
  string   a   =   "C   Sharp   can   go."  
  string   b   =   "perhaps     more   futher!";  
  Int16   c   =   "911"  
  byte[]   data   ......  
   
  传输过去后,应该如何做,得到这几个串和数字.  
   
  原来C++中可以操作指针实现,C#中怎么办了。希望给出各种方案,包括unsafe的。  
   
  多谢大家指教,凡是有建设性意见的都有分,最好给出比较完整的例子。可以在开贴给100分。谢谢大家。 问题点数:100、回复次数:3Top

1 楼gaodz(慕白)回复于 2002-09-14 16:34:04 得分 80

根据此结构定义一个STRUCT  
  struct   Data{  
  long   Len_a;  
  string   a;  
  long   Len_b;  
  string   b;  
  int16   c;  
  }   Data_Send[];  
   
  发送时以STRUCT为单位一个一个的发送,接受方接收后将接收到的数据放到BYTE1[]中。编写数据还原函数。  
  Struct   Data   Data_Rec;  
  long   i,lTemp,lPos;  
  for(i=0;i<4;i++)  
  {  
          lTemp=byte1[i];  
          lTemp=lTemp<<(8*i);  
          Data_Rec.Len_a=Data_Rec.Len_a+lTemp;  
  }  
  char   *   c;  
  for(i=0;i<lTemp;i++)  
  {  
          c[i]=(char)byte1[i+4];  
  }  
  string   s=string(c,4,lTemp);  
  Data_Rec.a=s;  
  lPos=lTemp+4;  
  ...Top

2 楼hillfree(比较土,请原谅)回复于 2002-09-15 17:38:01 得分 0

谢谢   gaodz(慕白)   的指教,  
  用了指针是不是就是unsafe代码了吧?  
  需要用什么额外的引用吗?  
   
  有没有其他的方法?  
  我在用这样的方法可以吗:  
  NetworkStream   netStream   =   new   NetworkStream(mySocket);  
  StreamReader   sr   =   new   StreamReader(netStream,   Encoding.Unicode);  
   
  string   a   =   "name   John   Woo";  
  sr.Write(a.Length);  
  sr.Write(a);  
   
  string   b   =   "Wind   walker";  
  sr.Write(b.Length);  
  sr.Write(b);  
   
  int16   c   =   911;  
  sr.Write(???);  
  ....  
   
  可是,我接收到的stream,怎么还原呢?    
   
  请大家指教.谢谢Top

3 楼yarshray(saga jion(心飘情落))回复于 2002-09-16 14:26:17 得分 20

你既然知道length把写改为读不就可以了!Top

相关问题

  • OICQ报文的格式(重分!有3000可用)
  • 超级终端的传输格式
  • 急求急求急求,ICMP超时报文的格式....快快快
  • 200分求学生体质健康上报文件内容和格式。
  • 关于报文的疑问,为什么要分包和传输数字呢?--在线等,欢迎大家讨论
  • 哪位有QQ的报文格式?只是看QQ界面不爽,而且有广告,比较烦!
  • 求教:网络传输中的数据格式处理
  • 求教:网络传输中的数据格式处理
  • 大侠指点一下RM网络传输的格式
  • ICMP报文

关键词

  • c#
  • 格式
  • 传输
  • 字串
  • byte
  • long
  • data

得分解答快速导航

  • 帖主:hillfree
  • gaodz
  • yarshray

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo