问题标签 [udp]

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 投票
7 回答
12859 浏览

java - 如何测量使用 UDP 协议进行通信的服务器和客户端之间的响应时间?

测试的目的是检查两个主机(客户端和服务器)之间的网络响应时间的形状。网络响应 = 发送数据包并接收回数据包所需的往返时间。我正在使用 UDP 协议。我如何计算响应时间?我可以减去 TimeOfClientRequest - TimeOfClientResponseRecieved。但我不确定这是否是最好的方法。我不能仅从代码内部执行此操作,并且我认为操作系统和计算机负载可能会干扰客户端启动的测量过程。顺便说一句,我正在使用Java。

我想听听你的想法。

0 投票
2 回答
1305 浏览

.net - 创建一个我可以拆分的 UDP 数据包

我正在 vb.net 中构建一个简单的 udp lan 聊天应用程序,我想知道我应该如何拆分我的数据包。每个发送的数据包都应该有一个 id、一个用户名和来自哪里的 ip 地址,也许还有一个命令部分,比如加入或离开,以更新我的用户列表和一条短信。我想知道将所有这些放在一个简单的数据包中的最简单方法是什么,然后在收到它时轻松拆分并访问它的不同部分。谢谢。

我正在使用 UDP,因为这仅在局域网中,所以我正在广播到*.*.*.255

编辑:谢谢你的回答乔恩,但我已经知道了。我想知道的是最简单和最强大的方式来格式化我的数据包,使它们包括用户名、id、命令和文本消息,然后接收它的用户解密它以仅显示由哪个写入的消息用户,或者如果它是诸如加入或离开之类的命令,以显示加入的适当消息并将用户添加到列表中,例如。

0 投票
2 回答
14370 浏览

.net - 使用线程监听 UDP 广播

我正在向 广播一条简单的消息.*.255 (更改为 255 我的 ip 的最后一部分),我正在尝试听它。代码没有返回错误,但我没有收到任何东西。在wireshark中,我可以看到广播被正确发送,但每次使用不同的端口(我不知道这是否很重要)。这是我的代码的一些部分。

0 投票
4 回答
3096 浏览

c++ - 开源和跨平台多人游戏/网络库?

虽然raknet看起来相当有趣并且从功能的角度来看确实很吸引人,但它的许可条款似乎对于可能在商业上利用的 GPL 项目来说可能很麻烦,这是知识共享许可条款明确禁止的。

虽然也有opentnl,但它现在似乎不再被积极维护,事实上下载最新的稳定 tarball 甚至在编译过程中也会失败,因为它似乎不支持 gcc >= 3.0 (?)

当然,还有enet,但是这个不能和 raknet/opentnl 支持的抽象特性相比。

那么,除了诸如 ACE、Boost 或 Poco 之类的重要依赖项之外,是否有任何可行的替代方案来嵌入一个相当紧凑、维护良好的 UDP 网络库?

谢谢

0 投票
4 回答
4076 浏览

java - 创建原始数据包以欺骗 UDP 数据包

我正在寻找使用 Java 来欺骗 UDP 数据包。是否有任何好的 Java 库可以让您创建自己的 RAW SOCKETS?

0 投票
3 回答
1814 浏览

windows - 多宿主系统上的 UDP 广播

我正在开发一个使用 UDP 广播发现/配置远程设备的项目。这些设备可能尚未配置 IP 地址,至少与它们连接的网络不匹配。目前我们使用一个sendto目标地址为255.255.255.255. 这在大多数情况下都可以正常工作,但在具有多个 NIC 的 Vista 机器上,广播似乎只从其中一个接口发送出去。如何让 Vista 将广播发送到所有接口?

0 投票
2 回答
5225 浏览

c - 连续调用 recvfrom() 会丢失数据?

我正在开发一个使用 UDP 的可靠文件传输程序。(计算机网络课程。)

我的问题是 - 好吧,考虑一下这种情况:

  1. 发送者(例如)有 12 个字节的数据要发送。所以发送者执行这个调用:

    这会以不可靠的方式发送 12 个字节的数据。该数据的前 4 个字节恰好是“消息长度”字段。在这种情况下,前 4 个字节的值可能为 0x0000000C

  2. 接收方想要使用 recvfrom() 读取前 4 个字节。看到段大小是 12 字节,它想读取剩余的 8 字节。所以接收器可能看起来像这样:

    /li>

当我执行此代码时,我可以毫无问题地接收前 4 个字节。但是当我尝试获取剩余的数据时,这些数据似乎丢失了。在我的输出中,我得到了垃圾 - 它看起来像是发送者正在发送到()的下一个12 个字节的一部分。

这是预期的行为吗?也就是说,如果单个recvfrom()调用没有读取所有发送的数据,是不是不能保证数据(剩余的8个字节)可供我使用?

似乎发送段标头(包括其大小)和有效负载的标准方法不起作用。这是否意味着我需要发送 2 个单独的段 - 一个仅包含标头信息,然后是带有有效负载的第二个段?还是我只是错误地使用了这些系统调用(或者是否有我缺少的标志或 setsockopt()?)

0 投票
4 回答
44950 浏览

c++ - 如何设置 Winsock UDP 套接字?

我想创建一个只向客户端发送数据的 Winsock UDP 套接字。我希望内核为我选择一个可用的端口。另一方面,我想指出要使用哪个本地 IP,因为我正在运行一些网卡。

我尝试过梳理套接字选项的迷宫,以及将套接字地址中的端口绑定设置为 0 均无济于事。

我的代码在 Win32 C++ 中。

0 投票
3 回答
41907 浏览

linux - 所有接口上的 UDP 广播

在具有有线和无线接口(例如 192.168.1.x 和 192.168.2.x 子网)的 Linux 系统上,我想发送一个通过所有可用接口(即通过有线和无线接口)发出的 UDP 广播)。

目前我 sendto() 到 INADDR_BROADCAST,但似乎广播仅通过其中一个接口发送(并不总是相同,后续广播可能使用另一个接口)。

有没有办法可以发送通过每个接口发出的 UDP 广播?

0 投票
4 回答
33590 浏览

php - 如何使用 PHP 将数据通过 UDP 发送到 IP 地址?

如何使用 PHP 将数据通过 UDP 发送到 IP 地址?

如何在另一台计算机上接收该数据?

这段代码发送带有程序的“kik”,我可以在另一台计算机上阅读它,但我如何在浏览器中看到它?