UDP 数据发送 C# 发送 C接收 出问题

dprk 2008-07-09 11:06:16
UdpClient uc = new UdpClient();
int[] array = new int[5] { 1, 2, 3, 4, 5 };
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream memStream = new MemoryStream();
formatter.Serialize(memStream, array);
memStream.Position = 0;
byte[] b = memStream.GetBuffer();
memStream.Close();

MemoryStream memStream1 = new MemoryStream(b);
int[] array1 = (int[])formatter.Deserialize(memStream1);
memStream1.Close();




uc.Send(b, b.Length, Dns.GetHostName(), 8888);


发送长度256 C接收后 长度也是 256 但是
C中 buff[2048]

int *p = buff;
for( int i=0; i<5; ++i ){
cout << *p << endl;p++;}

打印的数据不是 1 2 3 4 5

请问为何 ?
...全文
136 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dprk 2008-08-01
  • 打赏
  • 举报
回复
谢谢了 我试试看
哈哈哈啊002 2008-07-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cls555 的回复:]
先主机字节转网络字节,发送,然后接受的网络字节再转主机字节,试试
[/Quote]
记不清了。不知道是否会涉及到字节的大小端问题。
cls555 2008-07-25
  • 打赏
  • 举报
回复
先主机字节转网络字节,发送,然后接受的网络字节再转主机字节,试试
anan1211 2008-07-25
  • 打赏
  • 举报
回复
kan da an
hopewoo 2008-07-25
  • 打赏
  • 举报
回复
你用Int16,不要用int
dprk 2008-07-24
  • 打赏
  • 举报
回复
UP
dprk 2008-07-10
  • 打赏
  • 举报
回复
打印结果是
256
-256
2xxxxx
0
xxxx
具体记不得了

后来用C的代码发送 数组 显示就正确了
QSmile 2008-07-10
  • 打赏
  • 举报
回复
C# 是用 unicode
hopewoo 2008-07-10
  • 打赏
  • 举报
回复
打印了什么?
greystar 2008-07-10
  • 打赏
  • 举报
回复
是不是双方的编码不一样,引起的.你把结果给显示出来啊.

110,817

社区成员

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

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

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