【问题标题】:Chatserver. what happens to read an write buffer when ..?聊天服务器。当..时读取写缓冲区会发生什么?
【发布时间】:2013-05-13 20:10:11
【问题描述】:

TCP 聊天服务器对并发服务使用轮询方法。客户端 A 不断发送大量数据。 Chatserver 尝试将数据从客户端 A 发送到客户端 B 和 C。但是,客户端 B 和 C 没有从其读取缓冲区中读取。聊天服务器、客户端 A、客户端 B 和客户端 C 的读写缓冲区会发生什么变化。 有2个案例 1. 聊天服务器有阻塞套接字。 2. 聊天服务器有非阻塞套接字。

【问题讨论】:

    标签: sockets networking


    【解决方案1】:

    如果您在谈论 TCP,接收方的套接字接收缓冲区已填满,因此发送方的套接字发送缓冲区已填满,因此发送方要么被阻塞(处于阻塞模式),要么返回 -1,errno == EAGAIN/EWOULDBLOCK 在非阻塞模式。

    如果您在谈论 UDP,则数据报将被丢弃。

    【讨论】:

      猜你喜欢
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      相关资源
      最近更新 更多