c# - 我的 C# 应用程序中的带宽整形

标签 c# webrequest bandwidth trafficshaping low-bandwidth

我有一个 C# 应用程序,它使用 native 库,使用 UDP 通过 Internet 将视频发送到其他 IP。我对那个图书馆没有交通管制。

我的应用程序还使用我可以控制的 WebRequest 调用另一台服务器的 Web 服务。

问题是:

当我的互联网带宽较低时,视频流会占用我的所有带宽。因此,在那段时间我无法从我的 Web 服务方法中获得响应。

有什么方法可以确定 WebRequest 的优先级或为它们节省一些带宽,以便我可以安全地获得响应?

最佳答案

我不知道 C# 中有任何方法可以以这种方式对流量进行优先级排序。

我知道这不是一种堆栈溢出的答案,但这是我处理流媒体服务的方式,当您没有适当的网络基础设施访问权限时,我的环境中不会耗尽带宽,这是执行此操作的“正确”方法。

当您决定要使用哪种方法时,我建议您看一下 https://superuser.com它应该能够解决您在实现解决方案时遇到的任何障碍。

解决方案一。

拆分为 2 个服务,并在每个服务或数据库轮询中通过 REST API 进行通信。 然后使用网络限制程序来优先处理其中一项服务的流量。 https://www.netlimiter.com/https://netbalancer.com/是可以执行此操作的软件示例,但还有更多。

优点:您将对流媒体服务进行动态节流。

缺点:您必须在服务器上运行另一个程序,而且它绝对不是免费的。

解决方案二。

使用IIS,IIS内置节流https://www.iis.net/configreference/system.applicationhost/weblimits并查看 maxGlobalBandWidth。 然后你有 2 个网站通过 REST 或数据库轮询进行通信。 优点:开箱即用的简单解决方案。

缺点:您的限制不是动态的并且在您的配置文件中。

请注意,如果您的 Internet 网络速度变化很大,则不应使用此方法。

关于c# - 我的 C# 应用程序中的带宽整形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43619329/

相关文章:

amazon-web-services - AWS EC2 弹性 IP 带宽使用情况和费用

c# 将类属性绑定(bind)到复杂结构

c# - 从同一应用服务中的应用程序连接到 Azure Webjob

c# - 必须使用适当的属性或方法来修改 'Accept' header 。参数名称: name

c# - request.GetRequestStream() 抛出 “Value cannot be null” 异常

linux - 我需要帮助来使用 gnuplot 创建图表

C++ 限制 tcp 连接上的数据

c# - 我如何处理不想等待的异步任务?

c# - 聚焦 ListBoxItem 不会更新其样式

c# - 使用 WebRequests 下载 pdf 文件