问题标签 [udpclient]

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 回答
277 浏览

c# - 我如何知道我在 c# 中收到了多少 udp 数据(包括坏数据)

我想知道到达我的 updclient 的数据量,包括损坏/坏数据、数据包头等。我想使用 udp 计算吞吐量。

谢谢。

0 投票
3 回答
3383 浏览

c# - c#中的UDPclient速率控制

我将多个 udp 数据包连续发送到远程 pc。问题是,如果数据量太大,通道之间的某些设备会出现缓冲区溢出。我打算限制/限制/控制 udp 数据包的发送速率。有人可以给我一些关于如何找到最佳速率发送间隔的指南吗?

顺便说一句,请停止建议 tcp over udp。目标不是可靠地发送数据,而是测量最大吞吐量。

0 投票
4 回答
67454 浏览

c# - 如果我在 C# 中发送 0 有效载荷数据,udp 数据包的大小是多少?

我已经计算出使用 udp 的 2 个端点之间的分段之前的最大数据是 1472(其他端点可能会有所不同)。这表明 mtu 为 1500 字节,每个数据包的标头开销为 28 字节。假设如果我发送 0 字节数据(有效负载),实际传输的数据是 28 字节,是否安全?我正在做一些基准测试,所以了解频道中发生了什么对我来说至关重要。

0 投票
1 回答
814 浏览

c# - C# udpclient.send to fake ip too slow to complete

当我将 udpclient.send 发送到假/未知 ip 时,该过程需要很长时间才能完成(每次通话大约 2 秒。对于 1000 次通话,大约需要 2000 秒)。如果我 udpclient.send 到一个已知的 IP,发送 1000 个数据包不到 2 秒。

我正在使用发送进行开发,这种事情使开发过程花费了很长时间。有没有办法防止这种放缓?仅供参考,我确实输入了 IP 地址(不是主机名以防止 dns 解析),我确实尝试使用 udpclient.connect 但问题仍然存在。

谢谢。

0 投票
1 回答
2041 浏览

c# - C#中的UDP客户端

我在 C# 的 UDPClient 中使用。我调用接收函数,但是当我运行应用程序时。程序进入永恒循环。为什么会出现这种现象?也许是因为这个端口上没有可用的数据?我能做些什么?

我写了以下代码:

谢谢

0 投票
3 回答
1958 浏览

c# - 需要一种更好的方式在发送和接收之间等待,UDP客户端

这是我的麻烦:

我有一个允许我从游戏服务器发送和接收数据的 udp 类。

但我发现服务器每 500 毫秒每个客户端只允许一个请求。所以如果我连续发送两个请求,服务器只响应第一个,我无法知道我不会得到第二个答案。

所以我做了一个互斥锁来保护发送部分,当我发送数据时,我使用一个线程来阻塞互斥锁500ms。

此类由线程使用,这就是我使用互斥锁的原因。

但这并不能很好地工作,有时接收会卡住。

我只是想知道是否有人有更好的方法来做到这一点。

谢谢你,对不起我的英语。

编辑:我不能使用 tcp 协议,我需要使用 udp 执行此操作。我还需要一种最佳方式,我需要尽快将接收数据发送到视图。我在网上看到了关于 udp 和线程的每一个主题,但没有找到这种特殊情况。

0 投票
3 回答
7089 浏览

c# - UdpClient - 有限的缓冲区大小?

我在 C# 中遇到了 UdpClient 的问题。我正在两个客户端之间通过 Internet 流式传输音频。

在我的麦克风上,采样率为 16khz,我发送带有音频的 UDP 数据包,每个数据包 6400 字节。这些永远不会通过,除了最后一个数据包,自从我关闭录音以来,它通常在 1200-3400 左右。当我将采样率降低到 8khz 时,我会发送 3200 字节有效负载的数据包。由于某种原因,这些总是通过。

所以基本上任何高于 3200 的东西都会被搞砸(还没有测试过确切的数字,但是......)这到底是为什么?我在想 UdpClient 内部缓冲区可能太小还是什么?由于我经常发送流式音频数据包。

收到:

我找不到任何明显的错误。(函数的 asyn 对象是 null 顺便说一句,我不需要使用 stateobject ,但这不应该与此相关)

我知道 UDP 不可靠,但考虑到每个 3200 大小的数据包都通过并且没有 6400 大小的数据包对我来说很可疑,尤其是最大大小是什么,64kb?

有任何想法吗?

0 投票
1 回答
1477 浏览

c# - UDP打孔:单机可测试性

我正在编写一个简单的 P2P 应用程序来测试在更大的项目中使用 UDP 打孔的可行性。

我昨天在家尝试了我的测试应用程序,它们工作正常。

但是,我现在在工作,相同的代码不再起作用。发送者在这里发送到我们路由器的外部 IP 地址上的适当端口,但接收者没有收到任何一个。

在调用之前UdpClient.Receive(),接收应用程序将数据包发送到它将监听的 IP:port。同样,这适用于我的家庭设置,但不适用于这里。无论 Windows 防火墙是打开还是关闭,结果都是一样的,所以这不是问题。

可能是路由器处理这种情况的方式不同吗?

EDIT1:两个应用程序在同一台机器上运行。

0 投票
2 回答
5876 浏览

c - 错误的文件描述符 - 简单的 UDP 客户端

当尝试创建一个简单的 UDP 客户端时,我的代码成功地打开了套接字并从文件中读取了一个小缓冲区,以发送到由命令行参数指定的主机地址和端口号指定的服务器。

但是,sendto 和 recvfrom 都因“错误的文件描述符”而失败,我不知道为什么。

0 投票
1 回答
499 浏览

c# - UdpClient Receive 直到第二次广播才返回

我觉得这真的很奇怪。尝试使用UdpClient同步接收广播msg,但广播完成却没有返回。只有在随后的广播中,我才得到消息。我认为框架内的某处存在错误?

......

谢谢,肯尼