问题标签 [flow-control]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
748 浏览

zeromq - 对在 NetMQ 中使用 SendHighWatermark 感到困惑

我正在使用 NetMQ 对我的原型进行测试,特别是我正在学习 HighWatermark 选项的影响。

我已经了解并测试了以下案例:

  • 带有 ROUTER 套接字的服务器尚未启动
  • 同时带有 DEALER 套接字的客户端正在发送 20 条消息(SendHighWatermark 为 10)

在这种情况下,我看到客户端只能发送 10 条消息,然后它在发送时被阻止。

然后我做了另一个处理速度慢的测试 - ROUTER 在收到每条消息后都会休眠。在这种情况下,我希望 DEALER 快速发送 10 条消息,并延迟发送另外 10 条消息。但 DEALER 会毫无延迟地发送所有消息。

路由器的代码:

经销商代码:

为什么在我的情况下,当处理速度很慢时,经销商可以毫不拖延地发送?

0 投票
4 回答
107 浏览

javascript - 在 Javascript 中正确获取对象属性

我目前正在一个大型 Javascript 代码库中工作,代码库中到处都是诉诸异常进行流控制的代码

我可能喜欢条件逻辑,例如相同功能的这种实现

虽然后者感觉冗长,但当然可以编写一个辅助函数来减少此类检查的样板。

前者是 Javascript 的惯用语吗?后者是否脆弱(跨浏览器/场景)并且最好留给try/catch无论如何?还是前者只是懒惰的证据?

编辑

这些对象被假定为“普通”对象,var obj = {}所以我不相信我关心这里的原型链。

0 投票
0 回答
484 浏览

java - java - 如何在java中获取UDP的剩余套接字接收缓冲区大小?

我们正在开发基于 UDP 的可靠传输协议。所以为了实现流控制,我们需要知道剩余的缓冲区大小。DatagramSocket 类中似乎没有任何方法可以返回剩余的套接字缓冲区大小。只有一个“getReceiveBufferSize()”方法返回总缓冲区大小。这是不可行的还是我看错了地方?如果那不可行,那么我该如何实现流量控制功能?任何帮助将不胜感激。

0 投票
0 回答
484 浏览

c - 计划在c中实现停止和等待算法

我考虑的算法如下。

1) 发送方使用 sendto() 发送数据。

2) 等待接收方的 ACK 包。

3-1) 如果下一个数据包的 ACK 在超时时间内没有到达,则发送相同的数据包。

3-2) 如果下一个数据包的 ACK 到达,则发送下一个数据包。

就像普通算法一样。我想知道的是使用recvfrom() 计算超时并等待ACK 的方法。我首先想到使用线程,但必须有更好的方法。我怎样才能同时处理这两个?我应该使用带有时间相关变量的while语句吗?

0 投票
0 回答
148 浏览

spring - Spring websockets tcp -> 流控制接口

我有一个利用 websockets 的 spring boot 应用程序。我已经建立了自己的协议,该协议通过 websockets 以二进制形式传输。现在在那个协议中,在某些事件发生之后,我想使用流量控制来向客户端发出他需要放慢速度的信号。由于我已经在使用 websockets 并且 websockets 正在利用 TCP,我想使用已经在 TCP 中构建的 TCP 流控制机制。我不想自己重新发明轮子。有谁知道我在 Spring 中的 websocket 连接期间如何控制 TCP 窗口大小。即是否有一些特定的接口可以为我提供这种机制?

全部根据 RFC 6455,即使用 Sec-WebSocket-Extensions 标头和 websocket 状态代码。

0 投票
1 回答
55 浏览

networking - 不同比特率(时钟率)的两个网络适配器之间的通信

这是问题陈述:

链路具有标称速率:发送方为 4 kbps,接收方为 1 kbps。传播延迟为 20 ms,ACK 大小为 40 字节。对于什么范围的帧大小,停止等待的效率至少为 50%?

我不是要你解决这个问题,但有些事情不合逻辑。

  1. 如果它们没有相同的比特率或时钟速度,两端应该如何正确解释接收到的帧(和 ACK)?
  2. 网络适​​配器的缓冲区在这种情况下是否起作用?

两端具有不同的时钟速度,因此具有不同的比特率。我的结论是两端的时钟不同步。我进一步得出结论,从一端发送到另一端的信号的同步必须在物理层上完成,以便数据链路层具有正确的解释位。

开导我。

0 投票
1 回答
280 浏览

loops - 使用 goto 语句显式显示循环中的流控制

我应该采用以下程序片段并使用 goto 语句来显示循环中的流控制:

我意识到应该避免 goto 语句,但这就是问题所要求的。我认为这是应该的,以便通过循环显示流量控制:

这个对吗?我不确定是否在 break 语句之前或之后放置 goto 语句。

0 投票
2 回答
513 浏览

if-statement - Prolog 中的正确流控制,而不使用非声明性 if-then-else 语法

我想检查一个任意事实,如果它在知识库中,则做一些事情,如果不在,但没有( I -> T ; E)语法。

我的知识库中有一些事实:

给定一个不完整的规则

不这样做的正确方法是什么?

0 投票
1 回答
92 浏览

javascript - 如何循环promise函数流控制

我是新来使用promise和Q,我确定我做得不对,
请给我一些建议,

我可以fcall在里面使用fcall吗?因为有一个 for 循环我想确保每个项目image[i]处理一个列表承诺函数流..

我需要response从头到尾,输入到每个promise函数然后传递到下一个流程结束返回客户端,
但我不知道如何处理循环

0 投票
1 回答
48 浏览

c# - C# - 使用多种下载方法检查多个 IP 地址

我是这个网站的新手,所以如果我犯了任何格式错误,我提前道歉。让我知道是否需要进一步澄清。

我目前正在使用 C# 编写一个程序,该程序旨在从多个 http 或 ftp 源下载文件。

我希望它通过几个 IP 地址,然后检查几种方法是否可以成功下载已知文件。如果其中一种方法可以成功下载文件,它应该转到下一个 IP 并再次执行相同的操作。

到目前为止,我正在使用一个 foreach 循环,该循环遍历包含 IP 的数组并创建一个名为“IPxx”的文件夹以及一个 FTP 和 HTTP URI,因为我事先不知道哪个 IP 需要 FTP 或 HTTP 地址:

到目前为止一切顺利,达到这个水平的一切都按预期工作。但是,当我需要通过几种下载方法并检查我是否可以成功下载文件时,我会很挣扎,如果不能,它应该转到下一个下载方法并尝试相同的方法。

我想出了以下下载测试方法:

它适用于成功下载的文件,但是如果该方法无法下载请求的文件,我似乎会在此方法中“卡住”。在这种情况下,我希望它跳转到下一个 DownloadMethod 并再次检查,直到检查完所有方法。

此外,如果该程序通过每个 IP 并且无法下载任何内容,我希望它发送一封自动电子邮件。我知道如何实现 EmailMethod,但我又一次遇到了流控制。

我是一个绝对的初学者,不知道如何从这里获得我想要的流量。