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

c# - UdpClient,在 Send() 之后的 Receive() 不起作用?

考虑以下代码:

虽然根据 WireShark(网络嗅探器)的说法,远程主机确实回复了数据,但这里的应用程序只是永远等待数据......由于某种原因它没有收到来自远程主机的回答。

有任何想法吗?

0 投票
6 回答
5284 浏览

c# - 有没有办法在不指定每种情况的情况下将对象转换回原始类型?

我有一个不同类型对象的数组,我使用 BinaryWriter 将每个项目转换为其二进制等效项,以便我可以通过网络发送结构。

我目前正在做类似的事情

问题是,如果错过了它们的类型,我的代码将来可能会中断。

我想做类似的事情。

但除非我每次都做演员,否则它不起作用。

编辑:

在咨询了答案之后,这就是我想出的功能。为了测试这个函数,将数组发送到 syslog。

0 投票
3 回答
763 浏览

udpclient - 使用 Udp 连接接收数据报

为了通过 UDP 连接接收数据报,我创建了一个 UDPClient 类型的对象。

但是一旦完成并使用接收方法:

我收到一个异常,说我必须调用 bind 方法。但是 UDPClient 类中没有 bind 方法。如果可能的话,你们能否向我提供代码,说明应该采取哪些措施来克服这个异常。

0 投票
1 回答
446 浏览

.net - 如何让 UdpClient 对 DNS 更新做出反应

我正在使用 UdpClient 将数据包发送到服务器。我正在使用 (hostname, port) 构造函数在构造我的 Sender 对象时初始化 UdpClient。当以这种方式构造时,UdpClient 将主机名解析为 IP 地址。对 UdpClient 对象的后续调用使用 IP 地址。

不幸的是,如果使用的 DNS 别名通过 DNS 系统更新以指向不同的 IP 地址,则此更改不会反映在我的 Sender 对象中,除非重新创建它。

让我的 Sender 对象及时响应 DNS 更改的最佳方式是什么?性能非常重要。我可以想到几个解决方案:

  1. 对每次调用进行 DNS 解析(即使用接受主机名参数的发送重载)。由于 Windows DNS 缓存,这实际上可能非常快,我不知道。
  2. 在计时器线程上运行某种 DNS 检查器,以定期检查 DNS 别名是否解析为不同的 IP。如果是这样,它会以某种方式更新 UdpClient 以使用新的 IP 地址。但是,我真的不想在每次调用时都锁定 UdpClient 对象——正如我所说,性能很重要。

有人有这样做的经验吗?

0 投票
4 回答
29973 浏览

c# - 向所有可用的网卡广播 UDP 消息

我需要向特定的 IP 和端口发送 UDP 消息。

由于有3个网卡,

当我发送 UDP 消息时,我只在一个网络适配器中接收消息……其余的 ip 没有接收。

我想在发送消息时检查网络适配器。我怎样才能做到这一点?


目前我正在使用以下内容:

0 投票
3 回答
2117 浏览

c# - 尝试将数据包单播到可用网络时出现问题

尝试将数据包单播到可用网络。总共有3个网络。设法仅在一个网络中获取数据包。但我无法在不同的网络中接收数据包。

使用此代码..

问题是什么?谢谢。

0 投票
2 回答
9250 浏览

c# - 如何找到分配给 UDP 客户端(在 .net/C# 中)的端口号?

如果我使用创建套接字

那么我如何找到套接字的端口?

我可能很愚蠢,但我在 MSDN/Google 中没有运气(可能是因为星期五是 4:42 并且阳光明媚)。

背景:

我想要做的是找到一个开放的端口,然后报告给另一个进程在该端口上将消息转发给我。可能有多个客户端,所以我不想使用固定端口。

谢谢。

0 投票
1 回答
387 浏览

udp - 来自 Windows 小工具的 UDP 请求

如何从 Windows 小工具发出 UDP 请求?这个小工具与我想要制作的非常非常相似,但我想制作一个通过发出 UDP 请求从 TF2 服务器获取游戏信息的小工具。我查看了上面提到的小工具的代码,我真的无法理解它 - 我接受过 Java 培训,主要是在简单的控制台应用程序上。

根据 MSDN,JScript 支持 UdpClient,但是当我启动 IE8 的脚本调试器时,每当我尝试这段代码时都会出现错误:

错误:

“预期的 ';'”

JNEXT 可能会起作用,但它会从根本上破坏我的小工具的可移植性,并成为潜在的安全风险。Script# 已经有一段时间没有更新了,显然不支持 UdpClient 类。

想法?

0 投票
1 回答
177 浏览

c - “TIME 服务的 UDP 客户端”是否需要在转换前检查读取数据的长度?

我正在阅读 Comer 的 Internetworking with TCP/IP Vol III。

我正在查看 UDP 的“TIME”客户端的一些示例代码。

代码到达读取响应的位置,它需要 4 个字节并将其转换为 32 位无符号整数,因此可以将其转换为 UNIX 时间。

“n”是一个文件描述符,指向一个侦听 UDP 的套接字。

我想知道的是:

在进行转换之前是否应该检查一些假设?这是在 C 语言中,我想知道是否存在 read 传递的字节数不是 4 的情况。如果是这样,“现在”似乎会一团糟。

“现在”定义为:

所以也许我不理解“time_t”的性质,或者字节如何在 C 中传递,或者 UDP 在什么情况下会向文件描述符返回错误的字节数......

提前致谢。

0 投票
1 回答
4852 浏览

c# - ASP.NET UDP 套接字代码在开发中有效,但在 IIS 上的生产中无效

我在 ASP.NET Web 应用程序的单独线程中作为静态组件运行以下 UDP 广播侦听器。为什么我会这样做真的很不重要,但是部署时这不起作用的原因让我感到困惑。我确实有几个发送 UDP 广播的控制台应用程序,并且我已经编码测试并确认该线程及其代码在 VS2005 开发 Web 服务器上的 Visual Studio 下运行时工作,但是当我编译代码并将其部署到另一台机器时并在 IIS 下运行它 - 它停止工作。此外,它不会出错,它只是不起作用。

log4net 日志记录似乎也只能在 Init() 方法中工作,但不能在线程中工作(这很奇怪)。但是我File.AppendAllText在线程中添加了一些 's 并且它似乎正在执行,但据我所知,它停止在线byte[] received = mUdpClient.Receive(ref mGroupEP);

我确保端口已打开并在控制台应用程序中进行了测试(有效),我检查了权限,甚至使默认身份使用本地系统用户帐户,但仍然没有。我检查了防火墙,检查了事件日志 - 没有。没有错误,只是不工作。

我想知道这是否与 IIS 关闭 System.Net 请求作为安全措施有关,但我找不到任何可能支持该假设的东西。

我现在变得非常绝望。请帮忙。:(