gpt4 book ai didi

sockets - 实时操作系统上的UDP非阻塞套接字: sendto() and recvfrom() can return with partial message?

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

这是我的第一个消息。
我正在使用实时操作系统(OnTime和VxWorks)上的非阻塞UDP套接字。
我已经阅读了文档和一些论坛,但是对于sendto()和recvfrom()函数的“原子性”有一些疑问:

  • sendto()返回入队或错误的字节数。是否可能小于输入缓冲区的长度?也许输出缓冲区没有足够的可用空间,只有几个字节被排队...
  • recvfrom()返回接收到的字节数或错误。可能小于源发送的消息大小吗?我的意思是阅读部分消息...

  • 我希望读写功能是原子性的(完整消息或无消息读/写)。

    谢谢。
    伊曼纽尔。

    我要求OnTime支持,他们告诉我,如果输出缓冲区没有足够的可用空间,则sendto()可能会排队接收部分消息。我不知道在某些情况下recvfrom()是否还会返回部分消息。我想不同操作系统之间的套接字实现没有标准行为。

    最佳答案

    我对这些系统不是很熟悉,但是如果它们破坏正常的UDP套接字语义,我将感到非常惊讶,这总是使“发送”中的完整数据报入队,而“接收”中的完整数据报出队。

    关于sockets - 实时操作系统上的UDP非阻塞套接字: sendto() and recvfrom() can return with partial message?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14320622/

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