在一个应用程序中发送和接收 UDP 数据包

Posted

技术标签:

【中文标题】在一个应用程序中发送和接收 UDP 数据包【英文标题】:Send and Receive UDP packets in one app 【发布时间】:2017-02-10 09:06:36 【问题描述】:

我需要在 Node.js 中编写一个应用程序,它将一些 UDP 数据包发送到给定的 IP 地址和端口,并监听来自相同 IP 和端口的 UDP 数据包。 我见过的其他示例似乎都提到了一侧发送另一侧接收的客户端和服务器架构。我需要在一个应用程序中完成这两项工作。

我的问题是:我可以在同一个套接字上发送和接收,还是应该如下各一个?

const Send= dgram.createSocket('udp4');
const Recieve= dgram.createSocket('udp4');

谢谢

【问题讨论】:

【参考方案1】:

您只需要一个套接字 - 可以在同一个套接字上发送和接收。

但是,为了能够接收套接字,需要使用 socket.bind() 将其“绑定”到本地端口。

【讨论】:

谢谢你,你知道这是否会影响性能吗? 您可能无法像这样(甚至 10 秒)每秒处理成千上万个数据包,但大多数人不需要那种水平的吞吐量

以上是关于在一个应用程序中发送和接收 UDP 数据包的主要内容,如果未能解决你的问题,请参考以下文章

我用udp发送一个16进制包,接收端怎么解析。

Udp发送端和接收端

Java:可以发送和接收 UDP 数据包,但接收到的数据是乱码

发送 UDP 数据包的长时间延迟

如何实现可靠的 UDP 协议?

统一时C#脚本上的UDP服务器启动但无法接收数据包