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

c# - 如何更改 UdpClient IP 地址?

有没有办法即时更改 UdpClient IP 地址? StartUpd()抛出一个

System.Net.Sockets.SocketException:每个套接字地址(协议/网络地址/端口)通常只允许使用一次

即使在做了一个StopUpd().

0 投票
1 回答
1282 浏览

c#-4.0 - C#:UdpClient 在调用 close() 时不发送数据很快

在某些计算机上,当 UdpClient.Close() 在 UdpClient.Send() 之后过早调用时,UdpClient 不会发送数据。我正在使用 .NET 4.0 和 WireShark 来验证数据包丢失。

编码的基本部分是:

奇怪的是:

  • 在大多数计算机上,数据将毫无问题地发送
  • 即使没有发送数据包也没有异常或其他错误
  • bytesSent 将始终等于 data.Length
  • 在调用 sender.Close() 之前未发送数据包的计算机上,Thread.Sleep(250) 将解决问题!

那么,即使在 UdpClient.Send() 报告了正确的字节数之后,还有什么可以取消数据包的发送呢?为什么这仅在某些机器上出现?这可能是某些网络驱动程序、防病毒软件等的不同行为吗?

我还尝试明确设置 LingerOptions 这应该是不必要的,因为默认情况是在关闭底层套接字之前发送所有待处理的数据。但是,在执行 sender.Client.LingerState = new LingerOption(true, 10) 时(如http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.lingerstate.aspx中所述)我明白了

有什么想法吗?

问候,七

0 投票
4 回答
251 浏览

c# - 两次发送相同的消息是针对 UDP 劣势的好策略吗?

我有名为服务器、客户端和客户端 2 的 c# 可执行文件在同一个地址上相互发送消息。我通过它们即将到来的端口号来区分消息。

常规 run-1 服务器启动客户端加入,离开

run-2 服务器启动客户端 2 加入,离开

run-3 服务器启动客户端加入 client2 加入(问题来了),有时它从服务器获得回复,有时它只是挂起并且来自服务器的回复没有到达。

我正在使用 UDPClient 阻止 msg 传输例程。

当前解决方案:我从服务器发送相同的消息两次(希望至少第二次获得),因为它非常重要,我不再丢失这个消息。这种临时黑客的潜在失败是什么?

也请告诉我,如果我的 q?不完整,我会提供更多细节。

0 投票
1 回答
208 浏览

.net - 为什么 UdpClient 实例化会导致 ConfigurationException?

我最近在我的 App.confg 文件中添加了一个配置部分。虽然我意识到该部分无效,但我的应用程序实际上运行了,直到它到达这一行:

此时它给出了以下例外:

留言:

和内部异常消息(相同类型的异常):

为什么实例化 UdpClient 会访问您的应用程序配置,为什么它会抛出配置异常,而不是 Socket 异常(带有内部配置异常),就像方法所声明的那样?

0 投票
1 回答
4696 浏览

c# - 为什么 UDPclient 多播不起作用?

端口有什么问题吗?

recv 方法被阻止但没有收到消息?

在wireshark中,我可以看到从本地地址端口10102到224.0.0.1 dest_port 0的消息,但是recv没有从多播地址获取消息。

顺便说一句,我在同一台计算机上运行两个实例。参考:http: //msdn.microsoft.com/en-us/library/ekd1t784.aspx

**得到解决方案:在发送例程中

应该

收货港**

0 投票
1 回答
1698 浏览

c# - 如何将从另一个IP地址发送的UDP数据写入文本文件而不会丢失任何数据

实际上,在 console.writeline 中,我从另一个 ipaddress 发送的 UDPserver 获取所有数据。在将传输的数据写入我的文本文件时,某些数据丢失了它不会写入,所以如何将该数据写入我的文本文件而不丢失

0 投票
1 回答
711 浏览

buffer - UdpClient 接收缓冲区。它什么时候丢包?

我有一个 UdpClient 坐在端口上。我用它来发送数据。

99% 的时间我都不关心任何传入的数据包。但是,在极少数情况下,我需要监听我发送的一个数据包的响应。

我的第一个想法是在发送后直接调用 UdpClient.Recieve(),并循环遍历所有数据包,直到找到我的回复。

但是,我想知道接收缓冲区在 UdpClient 中是如何工作的。由于我没有正常处理任何接收到的数据包,我假设它必须缓冲它们,然后在缓冲区达到一定大小时将它们丢弃。我担心这种丢弃可能发生在我的回复到达网络之后,但在我的 Recieve() 调用执行之前。

我能想到的唯一解决方案是持续异步处理所有接收到的数据包,但对于这种简单的情况,这似乎有点过分了。

有谁知道 UdpClient 的缓冲行为?(例如,它会丢弃整个缓冲区,还是只丢弃最旧的数据或什么?)。MSDN 没有提供我能找到的细节。

0 投票
0 回答
945 浏览

c# - 无法在 UdpClient 上关闭 MulticastLoopback

我正在从 UdpClient 发送定向广播数据包。

我还在第二个 UdpClient(在同一个应用程序中)上侦听目标端口。

我不想看到自己创建的数据包,所以我认为这只是将 MulticastLoopback 设置为 false 的情况,但这不起作用。我仍然看到我自己的数据包。

有什么想法吗?

我可以使用 UdpClient 来实现这一点,还是必须退回到原始套接字?

编辑:

我尝试使用单个 UdpClient 实例来发送和接收,但现在我从未收到任何数据,无论 MulticastLoopback 设置如何!

我已经尝试同时监听 IPAddress.Any 和我的本地 IP,但我从未看到任何数据包。

0 投票
2 回答
276 浏览

c# - 错误线程上的 SocketException

我正在使用 C#UdpClient类来连接 UDP 网络。有一个UdpClient对象,绑定到一个固定的本地端口,但不绑定到任何远程端点,因为它需要能够向/从多个不同的端点发送/接收。

我有两个线程:一个用于发送,一个用于接收。现在,当我将数据发送到存在但不在该端口上侦听的端点时,我期望一个SocketException. 我确实得到了一个。不幸的是,返回异常的不是我Send的调用,而是Receive调用。因此,在我的发送线程上,我将数据发送到“无效”端点,而我的接收线程得到了异常。不幸的是,在那一点上,我当然不知道是什么端点导致了该异常的发生。

在发送之前存储端点,然后在接收线程中访问它只是等待发生的竞争条件错误。

不幸的是,SocketException没有给我导致错误的端点。

有任何想法吗?是否有可能在发送线程上引发异常?

非常感谢您的帮助。

0 投票
2 回答
3039 浏览

c# - UdpClient 发送接收

首先我想说我读到:UdpClient, Receive() 在 Send() 之后立即不起作用?

我的问题是:这是处理 UDP 通信的正常标准方式吗?设置一个 UdpClient 用于发送和另一个用于接收?