问题标签 [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.
c# - 我如何知道我在 c# 中收到了多少 udp 数据(包括坏数据)
我想知道到达我的 updclient 的数据量,包括损坏/坏数据、数据包头等。我想使用 udp 计算吞吐量。
谢谢。
c# - c#中的UDPclient速率控制
我将多个 udp 数据包连续发送到远程 pc。问题是,如果数据量太大,通道之间的某些设备会出现缓冲区溢出。我打算限制/限制/控制 udp 数据包的发送速率。有人可以给我一些关于如何找到最佳速率发送间隔的指南吗?
顺便说一句,请停止建议 tcp over udp。目标不是可靠地发送数据,而是测量最大吞吐量。
c# - 如果我在 C# 中发送 0 有效载荷数据,udp 数据包的大小是多少?
我已经计算出使用 udp 的 2 个端点之间的分段之前的最大数据是 1472(其他端点可能会有所不同)。这表明 mtu 为 1500 字节,每个数据包的标头开销为 28 字节。假设如果我发送 0 字节数据(有效负载),实际传输的数据是 28 字节,是否安全?我正在做一些基准测试,所以了解频道中发生了什么对我来说至关重要。
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 但问题仍然存在。
谢谢。
c# - C#中的UDP客户端
我在 C# 的 UDPClient 中使用。我调用接收函数,但是当我运行应用程序时。程序进入永恒循环。为什么会出现这种现象?也许是因为这个端口上没有可用的数据?我能做些什么?
我写了以下代码:
谢谢
c# - 需要一种更好的方式在发送和接收之间等待,UDP客户端
这是我的麻烦:
我有一个允许我从游戏服务器发送和接收数据的 udp 类。
但我发现服务器每 500 毫秒每个客户端只允许一个请求。所以如果我连续发送两个请求,服务器只响应第一个,我无法知道我不会得到第二个答案。
所以我做了一个互斥锁来保护发送部分,当我发送数据时,我使用一个线程来阻塞互斥锁500ms。
此类由线程使用,这就是我使用互斥锁的原因。
但这并不能很好地工作,有时接收会卡住。
我只是想知道是否有人有更好的方法来做到这一点。
谢谢你,对不起我的英语。
编辑:我不能使用 tcp 协议,我需要使用 udp 执行此操作。我还需要一种最佳方式,我需要尽快将接收数据发送到视图。我在网上看到了关于 udp 和线程的每一个主题,但没有找到这种特殊情况。
c# - UdpClient - 有限的缓冲区大小?
我在 C# 中遇到了 UdpClient 的问题。我正在两个客户端之间通过 Internet 流式传输音频。
在我的麦克风上,采样率为 16khz,我发送带有音频的 UDP 数据包,每个数据包 6400 字节。这些永远不会通过,除了最后一个数据包,自从我关闭录音以来,它通常在 1200-3400 左右。当我将采样率降低到 8khz 时,我会发送 3200 字节有效负载的数据包。由于某种原因,这些总是通过。
所以基本上任何高于 3200 的东西都会被搞砸(还没有测试过确切的数字,但是......)这到底是为什么?我在想 UdpClient 内部缓冲区可能太小还是什么?由于我经常发送流式音频数据包。
收到:
我找不到任何明显的错误。(函数的 asyn 对象是 null 顺便说一句,我不需要使用 stateobject ,但这不应该与此相关)
我知道 UDP 不可靠,但考虑到每个 3200 大小的数据包都通过并且没有 6400 大小的数据包对我来说很可疑,尤其是最大大小是什么,64kb?
有任何想法吗?
c# - UDP打孔:单机可测试性
我正在编写一个简单的 P2P 应用程序来测试在更大的项目中使用 UDP 打孔的可行性。
我昨天在家尝试了我的测试应用程序,它们工作正常。
但是,我现在在工作,相同的代码不再起作用。发送者在这里发送到我们路由器的外部 IP 地址上的适当端口,但接收者没有收到任何一个。
在调用之前UdpClient.Receive()
,接收应用程序将数据包发送到它将监听的 IP:port。同样,这适用于我的家庭设置,但不适用于这里。无论 Windows 防火墙是打开还是关闭,结果都是一样的,所以这不是问题。
可能是路由器处理这种情况的方式不同吗?
EDIT1:两个应用程序在同一台机器上运行。
c - 错误的文件描述符 - 简单的 UDP 客户端
当尝试创建一个简单的 UDP 客户端时,我的代码成功地打开了套接字并从文件中读取了一个小缓冲区,以发送到由命令行参数指定的主机地址和端口号指定的服务器。
但是,sendto 和 recvfrom 都因“错误的文件描述符”而失败,我不知道为什么。
c# - UdpClient Receive 直到第二次广播才返回
我觉得这真的很奇怪。尝试使用UdpClient同步接收广播msg,但广播完成却没有返回。只有在随后的广播中,我才得到消息。我认为框架内的某处存在错误?
......
谢谢,肯尼