【问题标题】:SOCK_STREAM VS SOCK_SEQPACKETSOCK_STREAM VS SOCK_SEQPACKET
【发布时间】:2014-07-06 23:18:55
【问题描述】:

我已从 PHP 手册中阅读了这两种通信类型的定义,但实际上我在理解某些段落时遇到了问题,因此我需要您的帮助。

这两个定义用于 PHP 手册:

SOCK_STREAM 提供有序、可靠、全双工、基于连接的字节流。可以支持带外数据传输机制。 TCP 协议基于此套接字类型。

SOCK_SEQPACKET 为固定最大长度的数据报提供一个有序的、可靠的、基于双向连接的数据传输路径;消费者需要在每次读取调用时读取整个数据包。

但我真的不明白为什么它使用词全双工,基于连接的字节流固定最大长度的数据报的基于双向连接的数据传输路径 strong>,我真的不知道 双向 连接和 全双工 之间有什么区别> 连接。

我有点困惑,所以我需要你的帮助。 谢谢大家。

【问题讨论】:

    标签: sockets network-programming


    【解决方案1】:

    全双工意味着它能够同时通信以发送和接收数据。

    不过,该手册在这里具有误导性;套接字类型不保证通信的效率,只保证可以对它们执行什么样的操作。

    来自我的 socket(2) 手册页:

       SOCK_STREAM     Provides sequenced, reliable, two-way, connection-based byte streams.  An out-of-band  data  transmission
                       mechanism may be supported.
    
       SOCK_SEQPACKET  Provides  a  sequenced,  reliable, two-way connection-based data transmission path for datagrams of fixed
                       maximum length; a consumer is required to read an entire packet with each input system call.
    

    【讨论】:

    • 但是双向是什么意思。
    • 某些套接字类型只允许发送或接收,不能同时允许
    猜你喜欢
    • 2012-10-28
    • 2012-04-23
    • 1970-01-01
    • 2011-08-14
    • 2020-08-17
    • 2018-03-03
    • 2016-06-14
    • 1970-01-01
    • 2011-12-07
    相关资源
    最近更新 更多