gpt4 book ai didi

sockets - 什么才最适合Unix套接字中的每种通信类型?

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

我需要使用Unix域套接字构建服务器,并且看起来有多种选择来选择通信类型。
man 2 socket:

  • SOCK_STREAM
  • SOCK_DGRAM
  • SOCK_SEQPACKET

  • 那么,哪个更适合每个人呢? (流,数据报,数据包)

    最佳答案

    这实际上取决于要实现的服务器类型。

    如果消息边界很重要,那么SOCK_DGRAM将是最佳选择。
    因为当收到完整的消息时,recvfrom/recvmsg/select将返回。

    使用SOCK_STREAM,消息接收变得更加棘手:一个接收调用可能返回部分消息,或者返回两个消息的一部分,或者返回多个消息...等等。

    如果消息边界不重要,那么SOCK_STREAM可能是最佳选择。
    SOCK_DGRAMAF_INET是不可靠的UDP。但是,在大多数系统中,SOCK_DGRAMAF_UNIX是可靠的。
    例如:如果接收方队列已满,则发送方将被阻塞,直到有空间为止。

    关于sockets - 什么才最适合Unix套接字中的每种通信类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11700456/

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