问题标签 [udp-data-transfer]

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

c++ - UDT(基于 UDP 的数据传输协议)出现“连接中断”错误

我正在编写一个需要可靠 UDP 的实时游戏,因此我选择使用 UDT(基于 UDP 的数据传输协议 - http://sourceforge.net/projects/udt/)。

客户端(在浏览器上)通过 CGI 脚本向我的服务器发送实时消息。问题是有一些消息正在丢失,我不知道为什么,因为服务器说它已成功将所有消息发送到相应的客户端,但有时客户端没有收到消息。

在我的调试文件中,我发现当客户端没有收到消息时,它的脚本说:

我想获得一些关于服务器如何知道客户端是否收到消息的帮助;我应该从客户端发送 NACK 或其他东西吗?我认为 UDT 应该为我做到这一点。有人可以澄清这种情况吗?

我的代码的通信部分的相关部分如下所示,并带有一些注释:

服务器的相关代码:

客户相关代码:

感谢您的任何帮助!

PS。在找到链接http://udt.sourceforge.net/udt4/doc/opt.htm后,我尝试增加 close() 的逗留时间,将以下内容添加到服务器的代码中:

但问题还是一样...

聚苯乙烯。服务器端通信的其他部分是:(注意:对我来说,它们并不那么相关)

0 投票
1 回答
779 浏览

udp - 亚马逊 ec2 上的 Netty UDT 示例

我不是网络专家,所以我可能遗漏了一些简单的东西。

我已经使用 netty 4.0.11 http://dl.bintray.com/netty/downloads/netty-4.0.11.Final.tar.bz2将消息回显客户端和消息回显服务器构建为可运行的 jar 文件

我能够使用 maven 加载所有正确的依赖项,并且项目在本地和服务器上正确构建和运行。我可以在我的本地主机上运行一个服务器,并从同一个客户端(localhost,在我的本地机器和我的亚马逊 ec2 实例上)连接到它。它再次在我的机器和我的机器上连接到自身(localhost)服务器计算机。

问题是我无法从它正在运行的机器外部连接到服务器,例如,我想从本地计算机上运行的 echo msg 客户端连接到我的 echo msg 服务器(在我的 ec2 实例上运行)。

我已经设置了亚马逊安全设置,以允许来自正确端口和本地机器 ip 的 UDP。我在 ec2 实例上运行 Echo 服务器并正确启动:

但我无法从本地主机外部连接,这是我从客户端机器收到的错误消息,我还关闭了本地机器上的所有防火墙(暂时)。不过,当我尝试连接时,我得到:

0 投票
2 回答
774 浏览

java - Netty NIO Udt 尝试给出错误,我在文档中找不到答案

抱歉标题可能不好,但正如它所说的那样。我是 Netty 的新手,这是我第二次尝试使用网络解决方案来解决我正在尝试做的事情。第一个直接使用 java.nio UDP 的解决方案有效,但效率低下且速度比我能忍受的慢。

我在启动时不断收到错误,找不到解决方案。该错误告诉我在类 io.netty.channel.udt.nio.NioUdtProvider 中没有这样的字段 Rendezvous。从javadocs看来,这指定了线程的作用。我错过了一个罐子吗?发生了什么?我可以获得有关如何解决此问题的任何指示吗?

我正在使用 Netty 4.0.0.1 CR1。这是我发现的唯一与示例一起使用的版本。我的类路径中还有 barchart-udt-core-2.2.0 和 jsch。

问题发生在我的服务器的主类(未命名为 main)中。在下一行。

更具体地说,错误发生在最后两行。

使用 MsgEchoServer 示例和我的 NettyServer 时,我收到以下错误代码。

我试图找到一个包含这些定义的 netty 4x jar,特别是完整的 Netty 版本,但得到相同或不同的错误。

我的 UtilThreadFactory 代码如下,与http://grepcode.com/file/repo1.maven.org/maven2/io.netty/netty-example/4.0.0.CR1/io/netty/example中的代码几乎相同/udt/echo/message/MsgEchoServer.java?av=f

谢谢

实用线程

*更新* 我按要求升级并得到完全相同的错误。我现在在我的路径中运行带有 jars 4.0.12 和 4.0.12-FINAL 的 Netty 4.0.12。无论我有一个或其他 jar 并且我清除了我的 eclipse 缓存,都会发生同样的错误。同样的问题也发生在 STS 弹簧工具中。任何帮助表示赞赏。谢谢

0 投票
2 回答
714 浏览

networking - UDT send() - 如何保证整个缓冲区的发送

我一直在使用 UDT 库一个基于 udp 的协议来发送文件,我注意到 send 函数在以阻塞模式返回之前将数据发送到缓冲区。然而,发送函数似乎返回而不以阻塞模式发送整个数据(send() 返回发送的数据量)。此问题的可能原因是什么?如果无法解决问题,应该如何发送剩余数据?我为 tcp 和 udp 使用了 winsock 库,但我没有得到 tcp 或 udp 发送的这个概率(与 udt 的功能相似)。通过传输相同的文件和网络测试所有程序。

我知道如果它是非阻塞的,这可能会发生,但我使用的是无限超时的阻塞发送。

0 投票
1 回答
596 浏览

java - Java Netty UDT 集合点不起作用

我正在使用 netty + udt + 集合点测试此示例的修改版本:http: //netty.io/4.0/xref/io/netty/example/udt/echo/rendezvous/package-summary.html

我已经在我的服务器和本地机器上启动了一个实例,其中“self”-host 是双方的 localhost,“peer”-host 是另一个的主机名。所以A绑定到localhost并连接到B,B绑定到localhost并连接到A。

在 LAN 中一切正常,但当我连接位于防火墙(fritzbox 路由器)和我的服务器后面的计算机时却不行。(服务器不会阻止端口)。在这种情况下会发生超时:

在双方我看到:

我以为 netty+udt 做 udp 打孔,不是吗?

0 投票
2 回答
569 浏览

c++ - 将现有套接字与 UDT 绑定

我正在使用 UDT 库在 NAT 后面的计算机之间传输文件。我已经在 python 中做了一个打孔协议,我知道它是如何工作的。在这里,我正在尝试将 UDT 套接字绑定到现有的 UDP 套接字。

使用sock我现有的 UDP 套接字和peeraddr我想交谈的计算机的地址

我有这个错误:

这有点奇怪,因为在UDT 绑定文档中,这似乎是可能的。

0 投票
1 回答
262 浏览

java - 在 Netty 中阻塞 IO (OIO) UDT 通道

我想在阻塞 IO 通道上使用 Netty 的 UDT 实现。我已经有一个有效的 NIO UDT 实现,其中 Netty 在 NIO 上有一个适当的通道。我找不到适合 OIO 的通道,如果有人帮助我在 Netty 中使用正确的阻塞 IO UDT 通道,那就太好了。

0 投票
2 回答
514 浏览

ios - Objective-C 中是否有类似于 Java 中的 Netty 的机制,用于将 TCP 转移到传输层中的 UDT 协议

Objective-C 中是否有类似于 Java 中的 Netty 的机制,用于将 TCP 转移到传输层中的 UDT 协议。

现在我想实现 HTTP 请求和响应(默认通过 TCP 运行)以在我的应用程序中通过 UDT 运行。

  1. 这可能吗?

  2. iOS中是否有任何内置机制?

0 投票
0 回答
109 浏览

c++ - 在 XCode 上设置 UDT 库

我有一台装有 OS X Yosemite 的 Macbook Pro Retina。我需要让 UDT 库(请参阅http://sourceforge.net/projects/udt/)在我的环境中工作。我下载了最新版本(4.11),解压,然后运行

按照这里的说明。然后我将 udt.h 文件从 src 文件夹移动到我的 /usr/include 文件夹,将 udt.dylib 移动到我的 /usr/lib 文件夹。然后我将 -I/usr/include 添加到我的 Xcode 项目中的“其他 C++ 标志”设置中,并将“-L/usr/lib”添加到我的“其他链接器标志”设置中。

当包括

一切正常(看起来可以找到文件)。但是,当我还将 -ludt 添加到“其他链接器标志”设置中时,我得到了

我究竟做错了什么?任何帮助将不胜感激。

0 投票
1 回答
129 浏览

c++ - UDT 无法发送无符号字符*

我使用 UDT 库来发送我的数据。但似乎无法正确发送 unsigned char* 数据。一方面我发送它喜欢

另一方面,我收到如下消息:

双方发送/接收计数字节相同。但数据不一样。当我做某种

我有不同的哈希值。在 UDT 源中有以下行:

如您所见,输入参数是 char* 但不是 unsigned char* 或 void*。这是否意味着我应该只发送 char* 或使用例如 base64 来编码我的二进制数据?