gpt4 book ai didi

c# - 通过 Tcp 客户端读取大数据包

转载 作者:可可西里 更新时间:2023-11-01 02:50:32 27 4
gpt4 key购买 nike

当使用 TCP 客户端时,NetworkStream.read 方法通常不会返回完全填充的缓冲区。我怎样才能让它阻止进一步的执行,直到它写完整个数组?

byte[] datagramByteForm = new byte[dgramSizeInt];
int j = dataIOStream.Read(datagramByteForm, 0, datagramByteForm.Length);//read the actual datagram
if (j != datagramByteForm.Length)
{
throw new Exception("Connection j value: " + j + " expected amount: " + datagramByteForm.Length);
}

最佳答案

实际上非常简单,您只需要在 stream.read 函数中使用提供的参数即可。这是一个例子(未经测试):

        TcpClient TCC = new TcpClient("127.0.0.1", 200);
int cOffset = 0, dgramSizeInt = 5000, j;
byte[] datagramByteForm = new byte[dgramSizeInt];

var dataIOStream = TCC.GetStream();

while (cOffset <= dgramSizeInt)
{
j = dataIOStream.Read(datagramByteForm, cOffset, dgramSizeInt-cOffset);
cOffset += j;
}

关于c# - 通过 Tcp 客户端读取大数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45656640/

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