【发布时间】:2014-10-30 10:00:37
【问题描述】:
我在获取应用程序的正确缓冲区大小时遇到问题。 我从网站上读到的关于指定缓冲区大小的内容通常在阅读之前声明。
byte[] buffer = new byte[2000];
然后使用得到结果。 但是,一旦接收到的数据包含'00',此方法将停止,但我的返回代码包含类似这样的内容...... 5300000002000000EF0000000A00。而且长度不固定,可以这么短到400字节
所以问题来了,如果我像上面定义一个前缀长度,例如 2000,返回值是 5300000002000000EF0000000A000000000000000000000000000000000000000000000000000....... 从而使我无法将字节拆分为正确的数量。
any1 可以告诉我如何从网络流中获取实际接收到的数据大小或任何方法/作弊来获得我需要的东西吗?
提前致谢。
【问题讨论】:
-
向我们展示你拥有的东西。
-
基本上我无法在这里显示任何内容,因为我被卡住了,根本无法继续。我写的唯一与这个主题相关的东西是
tcpstream.BeginRead(readbuffer, 0, (int)tcpsocket.ReceiveBufferSize, new AsyncCallback(ReceiveCallBack), tcpstream);,我被困在 ReceiveCallBack 方法中,因为完全无法处理传入的数据 -
NetworkStream继承Stream,所以Stream.Length将包含流的长度(如果已知)。 -
这个已经试过了。它返回 seek is not supported
标签: c# networkstream