gpt4 book ai didi

testing - 如何测试 TCP 服务器实现?

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

我已经编写了一个 TCP 服务器实现,我使用它创建了一个用作 TCP 回显服务的应用程序。

现在我想测试这个回声服务器

  • 它可以处理多少个连接
  • 响应时间是多少
  • 它使用了多少内存和 CPU

请您推荐任何标准方法/工具来测试此回显服务器。我知道 TCP 和回显服务器实现都是相当标准的做法,所以我希望找到成熟的工具来测试它。

P.S.:我可以编写自己的测试应用程序,但我不想这样做,因为如果我看到一些问题,我需要确定是我的服务器做错了。我不想先结束测试我的测试客户端。

我使用 C# 和 .NET 3.5 编写了这个实现,但我认为这与问题无关。

最佳答案

我有一个免费工具可以帮到你。我用它来测试用我的 C++ 服务器框架构建的服务器。该工具可在此处获得:http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html .它允许您以可配置的速率创建可配置数量的到目标服务器的连接,然后在每个连接上发送数据(再次以可配置的速率)。

如果发现使用它的最佳方法是在与服务器不同的机器上运行它(我知道这很明显,但是......)并且可能在多台不同的机器上运行多个副本。请注意,如果您发现无法建立超过 4000 个连接,那么您很可能需要调整运行客户端的计算机上的 MAX_USER_PORT 注册表设置。

一旦您测试了您的 TCP 代码,您可能会发现您需要测试您的服务器支持的协议(protocol)。我用 C# 为这种情况编写了一个测试工具,可在 CodeProject ( http://www.codeproject.com/KB/IP/testingsocketservers.aspx ) 上找到。这允许您编写一个“插件”来支持您的协议(protocol)并为您处理与协议(protocol)无关的内容(大量连接、分解消息以便您获得碎片化的读取等)。该设计是一个相当讨厌的每个连接线程设计,对于更多数量的连接,您最好使用异步设计重新实现一些东西,但我有我的 C++ 工具,所以我从来没有想过改变这个测试程序。 .

关于testing - 如何测试 TCP 服务器实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1824773/

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