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

c# - UDP算法的集成测试

我需要创建一个集成测试来演示成功地将 UDP 数据包发送到远程软件。远程软件在测试环境中不可用(它是一个遗留但仍受支持的版本)并且不受我的控制,所以我想我应该设置一个测试,至少证明命令按预期执行。阅读此问题的答案后,我将代码设置如下:

但是,这不像上面的评论那样工作。有人看到我在这里缺少什么吗?

0 投票
2 回答
625 浏览

c# - 如何减少 Socket 应用程序的 C# 内存使用量

我在 Windows 中开发了一个简单的 UDP 消息服务器和客户端应用程序,服务器可以向客户端发送消息但客户端不能发送任何内容,它们只是在侦听。问题是客户端应用程序使用了相当大的内存使用量,它在监听时使用了大约 7M,在接收到数据包时使用了 9M。我可以将内存使用量减少到至少小于 1M 吗?

0 投票
2 回答
1920 浏览

java - UDP 客户端/服务器 ....包括用于过滤重复的 16 位消息序列号

我的任务包括使用 UDP 服务发送图像文件(使用我成功实现的 java)。我的教授要求包括:

“交换的数据消息还必须有一个标头部分,以便发送方包含 16 位消息序列号,以便在接收端进行重复过滤”

这个怎么做?

0 投票
4 回答
13182 浏览

networking - UDP可以重传丢失的数据吗?

我知道该协议不支持这一点,但是对于需要某种程度的可靠性以在其应用程序中构建一种在发现数据包损坏时请求重新传输数据包的方法的客户端来说,这是否常见?

0 投票
2 回答
10660 浏览

networking - 通过 Internet 发送 UDP 数据包

我正在尝试了解 P2P/去中心化网络的一些细节。我的问题如下。假设我有两台名为 comp1 和 comp2 的机器。现在 comp1 设置在我的家庭网络上的路由器后面,而 comp2 也位于我的办公室中,也位于路由器后面。假设端口被正确转发,我是否可以像这样在互联网上来回发送 UDP 数据包?为了更深入地了解我正在调查的内容,我试图弄清楚一个新节点如何在不使用中央服务器的情况下发现现有节点。

谢谢!

0 投票
2 回答
3608 浏览

php - 使用 PHP 进行 UDP 套接字编程

我有一个 Java 服务器,它在 UDP 套接字端口 100 上侦听请求,并将其响应放在 UDP 套接字端口 200 上。

现在我需要用 PHP 编写一个客户端,它应该把它的请求放在端口 100 上,并且应该在 200 上接收响应。

我的程序能够将请求发送到端口 100 上的服务器,并且服务器也将它的响应放在端口 200 上。但是我的 PHP 程序没有收到响应。它正在进入等待状态。

有趣的是,如果我将响应发送到请求所在的同一端口,我的 PHP 代码就能够接收。但是服务器设计是使用两个端口。一进一出。

这是我的PHP代码

我的 Java 服务器代码是

这是我的 Java 服务器的输出

0 投票
1 回答
1339 浏览

c# - 通过 UDP 到 C# 的 IPFIX 数据 - 我可以解码数据吗?

我有一个来自 MSDN 网站的代码示例来创建一个 UDP 侦听器/客户端,因为我试图从防火墙接收 IPFIX/Netflow 数据,然后处理我收到的数据。该代码确实有效并开始接收数据,但它的行话(见下文)所以我想我没有正确解码它。

有谁知道我需要做什么才能以正确的格式获取数据?

我正在使用的代码是:

我得到的数据是:

?M?▼? '$▬+? ☺☺ ?M?▼???k` &??_?07????Q??E?U?j ♥ ☻<br> ♠ P ♣ x ♣ ► ♥ → ♦ ☼?M?▼?M ?▼? 1♠ ►?
? ☺</p>

提前致谢,

詹姆士

0 投票
2 回答
7243 浏览

c - C中的UDP服务器和2个UDP客户端

我阅读了 Beej 的指南并创建了一个 UDP 服务器和客户端。我首先运行服务器,然后运行 ​​2 个客户端。服务器应该是recevfrom一个客户端和sendto另一个客户端。当客户端 1 发送某些东西时,客户端 0 会收到它。当客户端 0 发送一些东西时,客户端 1 没有收到它。任何人都可以看到代码有什么问题吗?我已经阅读了有关 UDP、C、服务器、聊天的所有问题,但找不到任何对我有帮助的东西。我正在 OSX 上编译这段代码。任何帮助表示赞赏。以下是服务器代码:

和客户:

谢谢你。

0 投票
2 回答
12640 浏览

c# - Non blocking UDP socket .NET "A non-blocking socket operation could not be completed immediately" exception

I have written a small UDP client server class in C# that is used to provide comms between a Linux and a Windows machines.

The implementation of the UDP client and server in C# in Windows is a direct rewrite from C++ code I wrote for Linux originally.

I have no problems during run time between Linux machines but there is an intermittent problem that occasionally appears between Linux and Windows link.

Due to the application I need fast, non blocking operation of the UDP socket.

Since one client is Linux the code under C# I had to use some magic of marshalling.

Here is the code:

I use connect on UDP to simplify send and receive calls.

The problem happens when I try and read from the socket.

More code:

I have Wireshark running on both machines and I can see that the datagram sent from Linux machine arrives on Windows machine unharmed. However the UDP client Receive call throws and exception saying: "A non-blocking socket operation could not be completed immediately" which from what I understand is a WSAEWOULDBLOCK error. However I explicitly set blocking option to false.

The sequence of events is the following:

Windows machine sends a datagram on port 2 and listens for acknowledge on port 1. I have a while loop which implements timeout

Code:

I would like to be able to understand the issue and why the problem occurs and how can I fix it as I have fun out of ideas.

Thank you

0 投票
1 回答
1049 浏览

c# - 从 Win7 Pro 与 Ultimate 发送多播数据包

我有两个开发平台,一个运行 windows 7 Ultimate(笔记本电脑),一个运行 windows 7 Professional(桌面)。我刚刚检查了我的桌面上的代码,该代码在我的笔记本电脑上完美运行,通过多播发送 udp 数据包(如下),它在我的 Win7 Ultimate 计算机上运行良好,以及我可以测试的 win2k3 服务器和 windows xp 机器它打开了,但是在我的 win7 Pro 盒子上,我收到以下 SocketException “由于系统缺少足够的缓冲区空间或队列已满,无法执行套接字上的操作”

Windows 7 Pro 是否不允许您发送多播数据包?还是我只是错过了什么?

更新:我忘了提到我禁用了所有防火墙,驱动程序是英特尔提供的驱动程序,并且在通过设备的高级属性时,我验证了接收和发送缓冲区都设置为 2048,我已经尝试了上述具有 2 到 256 字节有效负载的测试代码,都具有相同的错误。