【问题标题】:UDP transmit performanceUDP传输性能
【发布时间】:2011-04-04 14:28:20
【问题描述】:

我有一个循环传输一些数据的应用程序。 底层协议是 WinSock 上的 UDP。如果我在每次传输操作后不添加 sleep(1ms) 大部分数据都不会发送(或者wireshark 无法捕获它)您是否经历过UDP 无法处理循环中重复发送的行为?

问候

图鲁尔

【问题讨论】:

  • 你检查过发送函数的返回值吗?
  • 实际上在 WinSock 之上有一个 TCP 客户端类,我根据一些特定的错误代码检查它(但不是我认为的全部)
  • 这听起来像是非阻塞套接字,即缓冲区溢出。
  • 我也有这种行为。找到答案的运气好吗?

标签: udp


【解决方案1】:

发送数据时首先应该检查返回值,以检查数据是否发送成功。 第二件事,这可能会发生 UDP 的内部缓冲区无法容纳更多数据,因为之前的数据尚未传输。所以最简单的解决方案是,每次发送数据之前,您都应该检查您的 UDP 套接字是否可写。您可以通过在该 UDP 套接字上调用“select”或“poll”来完成。

【讨论】:

  • 什么意思???你是说有TCP然后是底层UDP???我无法理解。你能解释一下吗?? UDP 和 TCP 都在同一个网络层上工作,你不能通过 UDP 运行 TCP,反之亦然。你一定是混淆了什么。请稍微解释一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多