【问题标题】:How do you monitor the size of the TcpListener backlog?你如何监控 TcpListener backlog 的大小?
【发布时间】:2011-04-02 20:29:51
【问题描述】:

我正在使用 C# 中的 TcpListener 类来打开新的 tcp 连接。我看到一些性能问题,我想看看它是否是由于运行超过 tcp 积压。有什么方法可以检查我的流程的当前积压工作的大小?

【问题讨论】:

  • 请说明您遇到的性能问题类型。通常,积压限制在listen 系统调用期间指定,然后被内核忽略。 :-) 大量积压不应影响您的表现。一旦积压清除并且客户端等待重新传输初始SYN,则忽略大量传入连接的短积压将减慢明显的连接速度。要回答您的明确问题,我不知道直接检查当前积压队列大小的方法。
  • 你找到答案了吗....有兴趣!因为我似乎遇到了限制

标签: c# sockets tcp


【解决方案1】:

您可能想要使用 Wireshark 之类的实用程序(图形化,但不能从 C# 编写脚本,AFAIK)。 Wireshare 使用一个名为 WinPcap 的库,它对计算机上的 TCP 流进行实际监控。需要在您的应用程序中完成 HTTP 标头的解码(这就是 wireshark/tcpdump/windump 应该能够做的)。您将需要使用 PInvoke 来调用 WinPcap DLL。您可以通过在网络上搜索“WinPcap PInvoke”来找到库包装器。

这个问题听起来非常类似于以下内容:

Is there any way in .NET to programmatically listen to HTTP traffic?

另外,Capturing HTTP requests 可能会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2021-11-01
    • 2017-01-04
    • 1970-01-01
    • 2012-05-08
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多