问题

  1. 在最基础的CS服务器中, 一个 Client 是否可以同时连接多个 Server,如何实现?
  2. 多个 Client 同时连接一个 Server 时,如何将其区分保存、处理?
  3. 接收、发送如何合理分开?
  4. 在 Socket 编程中,根据流程图拓展 select、poll、epoll 场景图?
  5. Client 如何告知 Server 断开连接,以及具体处理流程
  6. 单线程、多线程、单进程、多进程 & select、poll、epoll 组合使用流程详解?
  7. Socket 编程流程图中的三次握手与四次挥手?
  8. Server accept 接收一个 Client 后如何接收其他 Client,accept 函数具体表现?
  9. 多个客户端连一个服务器,accept 如何图示?
  10. server如何获取client的IP地址?

    解决

    1. 在最基础的CS服务器中, 一个 Client 是否可以同时连接多个 Server,如何实现?是,一个connect对应一个连接,若想当前client同时连接多个服务器,需要分别执行connect 2. 多个Client同时连接一个 Server 时,如何将其区分保存、处理?涉及到请求连接管理,可以用map、list、array等数据结构进行普通管理,也可使用连接池进行管理,如何设计合理高效的连接管理方案,对整个系统来说,是一个非常大的改进与优化。 server如何获取client的IP地址?在accept中addr参数,将自建ip指针地址传入accept中后,系统会自动写入