gpt4 book ai didi

sockets - 套接字编程 : How do I handle out of band data

转载 作者:行者123 更新时间:2023-12-03 11:54:18 25 4
gpt4 key购买 nike

我刚刚看了wikipedia's entry on out-of-band data据我所知,OOB 数据以某种方式被标记为更重要并被视为普通数据,但在单独的流中传输,这让我非常困惑。

实际的问题是(除了“有人能解释一下 OOB 数据是什么吗?”):

我正在编写一个使用套接字并需要使用 select() 的 unix 应用程序并且想知道如何处理 exceptfds 参数?我是否需要将所有套接字放入此参数并对此类事件使用react?或者我只是忽略它们?

最佳答案

我知道您已经决定不需要处理 OOB 数据,但如果您曾经这样做,请记住以下几点 关心OOB...

  • IPv4 并不真正在单独的 channel 上或以不同的优先级发送 OOB 数据。它只是数据包上的一个标志。
  • OOB 数据极其有限——1 个字节!
  • OOB 数据可以内联或单独接收,具体取决于套接字选项
  • 即使下一次读取不包含 OOB 数据(发送方的网络堆栈可能会标记任何已排队的数据,因此另一方会尽快知道存在 OOB),也可能会发生“异常”信号通知 OOB 数据。这通常是通过进入“排水”循环来处理的,在该循环中您丢弃数据,直到实际的 OOB 数据可用。

  • 如果这看起来有点令人困惑和毫无值(value),那是因为它主要是。有充分的理由使用 OOB,但这种情况很少见。一个例子是 FTP,用户可能正处于大型传输过程中但决定中止。中止作为 OOB 数据发送。在这一点上,服务器和客户端只是吃任何进一步的“正常”数据来耗尽仍在传输中的任何东西。如果中止是与数据内联处理的,则必须处理所有未完成的流量,只能转储。
    很高兴知道 OOB 的存在及其工作原理,以防万一您确实需要它。但是除非你只是好奇,否则不要费心从里到外学习它。您可能永远不会使用它。

    关于sockets - 套接字编程 : How do I handle out of band data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/589928/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com