gpt4 book ai didi

c# - 从流中读取不知道有多少期望 [c#]

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:32 25 4
gpt4 key购买 nike

当我事先不知道有多少数据将传入时,如何从流中读取数据?现在我只是选择了一个偏高的数字(如下面的代码所示),但不能保证我不会得到更多。

所以我在循环中一次读取一个字节,每次都调整数组的大小?听起来调整大小太多了:-/

TcpClient tcpclnt = new TcpClient();
tcpclnt.Connect(ip, port);

Stream stm = tcpclnt.GetStream();

stm.Write(cmdBuffer, 0, cmdBuffer.Length);

byte[] response = new Byte[2048];
int read = stm.Read(response, 0, 2048);

tcpclnt.Close();

最佳答案

MemoryStream 是你的 friend

http://msdn.microsoft.com/en-us/library/system.io.memorystream

构造没有默认大小,它将自动调整大小。然后按照你的建议循环,每次读取合理数量的数据。我通常至少选择 MTU 作为默认缓冲区大小。

要获取它创建调用的底层 byte[] 数组

memoryStreamInstance.GetBuffer() 

关于c# - 从流中读取不知道有多少期望 [c#],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/834605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com