问题标签 [udp]

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 回答
2283 浏览

c++ - 从不同的进程通过套接字 (UDP) 回复客户端

我有一个服务器,而不是一个“命令处理程序”进程。它通过 UDP 接收消息,并通过其发布的 API(无论该进程采用何种 IPC 机制)与该进程通信,从而将要做的工作委托给不同的进程。我们的系统有几个合作流程。然后,该 API 调用的结果会从命令处理程序进程发送回客户端。

一个命令是控制从另一个进程生成到客户端的数据流(“连接”消息)。

这应该工作吗?我将客户端的 IP 地址和端口号发送到另一个进程,该进程创建一个新套接字,并执行发送...我已经跟踪了代码,一切看起来都很好,但是客户端仍然被阻止接收...我知道如果我从命令处理程序发送到,它会得到响应,但不是来自新套接字。

这是一些示例代码:

所以请帮忙!

0 投票
5 回答
4496 浏览

c# - 要每 50 毫秒发送一次图像,我应该使用 TCP 还是 UDP?

我正在使用服务器-客户端模型构建一个 C# 应用程序,其中服务器每 50 毫秒通过一个套接字向客户端发送一个图像(100kb)......

我使用的是 TCP,但除了这个协议的开销之外,有时客户端会在套接字上获得多个图像。而且我还没有一个聪明的机制来分割每个图像的字节(实际上,我只需要最近的一个)。

我尝试使用 UDP,但得出的结论是我不能发送 100kb 的 dgram,只能发送 64kb 的。即便如此,我也不应该使用超过 1500 字节;否则数据包将沿着网络被分割,并且丢失部分数据包的机会会更大。

所以现在我有点困惑。我应该继续使用 TCP 并在每个图像的末尾放置一些转义字节,以便客户端可以将它们分开吗?或者我应该使用 UDP,发送 1500 字节的 dgram,并提出一种排序和恢复机制?

这里的关键目标是非常快速地传输图像。只要客户不断收到更新的,我不介意在途中丢失一些。

或者我应该使用其他协议吗?提前致谢!

0 投票
4 回答
5950 浏览

java - 在 1 个单个 UDP 数据报中发送多个数据

我正在做一个关于编写一个简单的 IM 系统的网络编程任务(很像最简单的 Windows Messenger 版本)。

规范规定我必须在单个数据报包中发送超过 4 个数据字段,它们是:

我想学习如何将所有这些数据打包到一个数据包中。

更新:到目前为止的帮助,但是说我有字符串句子和字符串,从正常的方式单独修补数据包将是

但是我怎样才能将“from”字符串与句子字符串一起附加到 sendData?

0 投票
4 回答
49916 浏览

java - 如何在 Java 中实现基于线程的 UDP 服务器?

如何在 Java 中实现基于线程的 UDP 服务器?

基本上我想要的是将多个客户端连接到服务器,并让每个客户端都有自己的线程。唯一的问题是,我不知道如何检查客户端是否正在尝试连接到服务器并为其生成一个新线程。

在这种情况下,服务器将产生新线程,直到内存不足。这是 ServerThread 的代码(我想我需要一种机制来暂停 ServerThread 的创建,直到客户端尝试连接。

所以请Java编程之父帮忙。

0 投票
4 回答
6060 浏览

c++ - 关于 UDP/IP 和 sendto/recvfrom 返回值的混淆

我第一次在 C++ 中使用 UDP 套接字,但我不确定我是否理解它们是如何工作的。我知道sendto/recvfromsend/recv通常返回实际发送或接收的字节数。我听说这个值可以任意小(但至少为 1),并且取决于套接字缓冲区中有多少数据(读取时)或缓冲区中剩余多少可用空间(写入时)。

如果sendtorecvfrom仅保证一次发送或接收 1 个字节,并且可以乱序接收数据报,那么任何 UDP 协议如何保持一致?这不是意味着当我收到消息中的字节时可以任意打乱它们吗?有没有办法保证一次发送或接收一条消息?

0 投票
4 回答
12709 浏览

java - 在java中通过UDP传输文件

我在使用 TCP/IP 的 Java 中实现了以下算法:

现在我在使用 UDP 数据包实现它时遇到了麻烦。这是我的代码:


客户:


服务器:

0 投票
12 回答
4499 浏览

c++ - 关于 UDP 编程我应该知道什么?

我不是说如何连接到套接字。关于 UDP 编程我应该知道什么?

  • 我需要担心套接字中的错误数据吗?
  • 我应该假设如果我发送 200 字节,我可能会分别得到 120 和 60 字节?
  • 我应该担心另一个连接在同一端口上向我发送错误数据吗?
  • 如果数据通常没有到达,我可以(通常)在多长时间内看不到数据(250 毫秒?1 秒?1.75 秒?)

我真正需要知道什么?

0 投票
4 回答
861 浏览

udp - 在 LAN 之外测试 UDP 代码时出现问题?

我在接下来的几天里学习 udp。这个周末我将参加那些 72 小时的比赛之一,我希望我的 UDP 代码在比赛结束前在线工作。在比赛期间,我不会有任何互联网(所以没有打电话给某人并让他们测试)。

我知道一些关于 UDP 的问题,比如数据包进来两次,没有进来几个帧(但我不知道我应该期望多长时间),推荐的字节大小(576)等等。我应该知道什么关于 UDP 编程?

但是从局域网迁移到互联网后,你会发生哪些事情呢?

注意:我将尽快运行一些代码并在线测试。希望我的最终代码会是什么样子,但我也可能会错过一些东西。

0 投票
3 回答
7488 浏览

linux - UDP广播和单播通过同一个套接字?

我有一个 Linux 应用程序,它打开一个 UDP 套接字并将其绑定到一个端口。我通过套接字发送单播数据包没有任何问题。我有机会发送一个广播数据包,所以我启用了 SO_BROADCAST,它允许广播数据包通过,但随后我注意到单播数据包也在广播。这是 UDP 套接字的预期行为,还是我配置错误的可能性更大?

0 投票
6 回答
22178 浏览

sockets - 如何获得免费的套接字端口?C++

我正在编写一个 UDP 测试客户端/服务器,我想通过防火墙获取它。据说我需要做的就是让双方都发送到正确的 IP 和服务器。获取 IP 不是问题,但我如何让客户端随机选择一个空闲端口并将其报告给用户?我最终希望它连接到媒人服务器,但现在我需要一个简单的工作原型,我想计算端口号,以便我的朋友/测试人员可以通过 IM 向我发送 #,以便我们进行测试。

我如何获得端口号?对不起,很长的描述。我注意到人们告诉我当我不提供 desc 时不要做我要求的事情:(