gpt4 book ai didi

c# - .NET 中的 TCP 服务器发送速度太快

转载 作者:可可西里 更新时间:2023-11-01 02:52:58 24 4
gpt4 key购买 nike

我正在 .NET 中制作一个客户端-服务器应用程序,但现在我遇到了一个问题,我尝试发送一些东西,客户端正在阅读它,而在阅读时我正在发送其他东西,所以它使发送的垃圾数据。

例子:

  1. 我发测试
  2. 客户开始阅读
  3. 我发送结束测试
  4. 客户端读取 test@$>@est

有办法解决吗?现在我在发送后执行 Thread.Sleep(10) 但我认为有更好的方法 :P。

附言我使用的是 NetworkStream.Write()/Read(),而不是 NetworkStream.BeginWrite()/BeginRead()。这两者哪个更好,为什么?

最佳答案

问题可能是您正在使用同一个套接字发送多个“事物”数据。您可能知道您发送了一个字符串,然后发送了一个图像,但是,TCP 看不到单独的对象,只有一个字节流。

您也无法知道需要进行多少次读取调用才能获得“第一个”数据对象。描绘多个对象超出了 TCP 的范围。关键是,这个问题最好通过每次事务使用一个套接字来解决。创建一个套接字,在一次写入调用中将所有数据写入其中,然后关闭套接字。让客户阅读,直到您拥有全部数据。如果您需要发送其他内容,请创建一个新套接字。

我知道这不是特定于 NetworkStream 类,但我希望它能有所帮助。

关于c# - .NET 中的 TCP 服务器发送速度太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4487758/

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