问题标签 [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 投票
3 回答
10726 浏览

python - 在 python 中创建 UDP 套接字时使用什么主机?

我希望 ro 接收一些通过 VPN 作为 UDP 数据包发送的数据。所以用python写了(大部分是复制的)这个程序:

我应该使用什么作为主机?我知道发件人的 IP,但似乎任何不是本地的东西都会给我 socket.error: [Errno 10049]。VPN 给我的 IP(即发送方发送到的 IP)?还是只是本地主机?

0 投票
4 回答
2662 浏览

c# - 异步 UDP 套接字的问题

我在套接字编程方面有点挣扎(我一点也不熟悉),我找不到任何可以从谷歌或 MSDN 中得到帮助的东西(糟糕)。为这篇文章的长度道歉。

基本上我有一个现有的服务,它通过 UDP 接收和响应请求。我根本无法改变这一点。

我的 web 应用程序中还有一个客户端,它调度和侦听对该服务的响应。我得到的现有客户端是一个单例,它创建一个套接字和一个响应槽数组,然后使用无限循环方法创建一个后台线程,该方法进行“sock.Receive()”调用并将接收到的数据推送到槽阵列。关于这方面的各种事情对我来说似乎都是错误的,无限线程破坏了我的单元测试,所以我试图用一个让它异步发送/接收的服务替换这个服务。

第 1 点:这是正确的方法吗?我想要一个非阻塞、可扩展、线程安全的服务。

我的第一次尝试大致是这样的,这有点工作,但我得到的数据总是比预期的短(即缓冲区没有请求的字节数)并且在处理时似乎抛出异常。

我的第二次尝试是基于更多的谷歌拖网和我经常看到的这种递归模式,但这个版本总是超时!它永远不会到达 ARecieve。

第2点:很明显我弄错了。

第3点:我不确定我是否正确。来自远程服务的数据如何到达正确的监听线程?我需要为每个请求创建一个套接字吗?

走出我的舒适区。需要帮忙。

0 投票
1 回答
527 浏览

windows - 在多宿主系统上接收 UDP 广播

我有一台带有多个网络适配器的 Windows XP 机器。当我从另一台没有有效 IP 地址的机器收到 UDP 广播包时,我如何确定是哪个网络适配器收到了这个包?

我需要在自定义 DHCP 服务器上实现一种...

0 投票
3 回答
2297 浏览

java - send real time voice using udp

hi every body could you please help me . I write java code for sending string msg between client and server using udp socket . but I want to to send real time voice so could you please give some notes to do it

0 投票
7 回答
4941 浏览

c++ - 发送一系列UDP数据报的“正确”方式?

我的印象是 UDP 的不稳定性是物理层的属性,但似乎不是:

我正在尝试通过 UDP 发送消息,该消息分为一系列数据包。消息识别和重新排序是隐式完成的。

我在同一台计算机上运行的两个应用程序上测试了这种方法,并希望它能够顺利运行。然而,即使数据传输完全是在同一台机器上的两个程序之间进行的,也存在丢包现象,而且非常频繁。损失似乎也很随机:有时整个信息都通过了,有时没有。

现在,即使在同一台机器上也会发生损失,这让我想知道我做得对吗?

最初,我是单次异步发送消息的所有片段,而不是等待一个片段完成后再发送下一个片段。

然后,我尝试从前一个消息的完成例程中发送下一个消息。这确实提高了丢包率,但并没有完全阻止它。

如果我在两个部分之间添加一个暂停 (Sleep(...)),它可以 100% 工作。

编辑: 正如答案所建议的那样:数据包发送得太快了,操作系统做了最小的缓冲。这是合乎逻辑的。

那么,如果我想阻止向系统添加确认和重新传输(我可以只使用 TCP),我应该怎么做?在不将数据速率降低到可能更高的水平的情况下,提高丢包率的最佳方法是什么?

编辑2: 我想到问题可能不完全是缓冲区溢出,而不是缓冲区不可用。我正在使用异步 WSARecvFrom 来接收,据我所知,它需要一个缓冲区,覆盖默认的操作系统缓冲区。当接收到数据报时,将其送入缓冲区,无论缓冲区是否已满,都会调用完成例程。

此时,根本没有缓冲区来处理传入的数据,直到从完成例程中重新调用 WSARecvFrom。

问题是是否有办法创建某种缓冲池,以便在处理不同的缓冲区时缓冲数据?

0 投票
4 回答
762 浏览

udp - UDP 锁定?

嘿伙计们,我需要人们猜测解决方案:(。

我正在使用 UDP 套接字,我正在做的是发送大约 8、4 或任何字节的播放器输入。我正在使用 recvfrom 和 sendto。它工作几分钟,然后随机锁定。然而,这可能是因为我的应用程序逻辑,但我想知道是否有人对此有经验,这是一个 UDP/网络问题。我的代码在这里http://www.pastie.org/486583但我主要想知道我可以根据您的经验来解决这个问题。

0 投票
6 回答
80120 浏览

networking - 如何找到我可以在不分段的情况下发送的最大 UDP 数据包?

我需要知道我可以发送到另一台计算机的最大 UDP 数据包是没有碎片的。

这个大小通常被称为 MTU(最大传输单元)。假设在两台计算机之间,会有许多路由器和调制解调器,它们可能具有不同的 MTU。

我读到 Windows 中的 TCP 实现会自动找到路径中的最大 MTU。

我也在试验,我发现从我的计算机到服务器的最大 MTU 是 57712 字节+header。上面的任何东西都被丢弃了。我的电脑在局域网上,MTU 不是应该在 1500 字节左右吗?

0 投票
4 回答
3860 浏览

iphone - 是否可以通过 3G 上的 NAT 穿越技术连接 iPhone 进行对等 2 对等游戏

是否可以将 iPhone 连接到另一部 iPhone 或任何其他使用该游戏协议的网络客户端。

我在想我可以使用与 XBox 360 中相同的NAT 遍历技术通过防火墙在用户 XBox 上托管游戏。

为了使 NAT 遍历有效地工作,我必须有一个中央服务器,它允许客户端“广播”他们托管的内容,以便另一个客户端可以启动 NAT 连接。在提供的链接中,这称为中继。

美国 AT&T 3G 网络是否有任何固有的限制会阻止 NAT 穿越技术(您是否仅限于 wifi 防火墙 NAT 穿越)?

NAT 穿越项目: - PJSIP - 通过使用基于标准的协议(例如 STUN、TURN 和 ICE)提供 NAT 穿越功能。- Freecast 使用 Apache MINA Java 网络库进行 NAT 遍历

0 投票
2 回答
3691 浏览

networking - TCP校验和的错误率?

TCP 和 UDP(有时)使用简单的校验和来确保内容正确。

我想知道的是任何经验数据或估计数据包损坏的频率,但对于具有标准计算机和互联网连接的人来说具有正确的校验和。

现在我知道这可能因 ISP 质量、硬件质量等而有很大差异,但我只想听听有关这方面的任何信息。

0 投票
3 回答
17273 浏览

flash - 是否可以在 Flash/ActionScript 中使用 UDP?

快速提问:是否有可能在 Flash/ActionScript 中创建 UDP 数据报套接字?