问题
- 在最基础的CS服务器中, 一个 Client 是否可以同时连接多个 Server,如何实现?
- 多个 Client 同时连接一个 Server 时,如何将其区分保存、处理?
- 接收、发送如何合理分开?
- 在 Socket 编程中,根据流程图拓展 select、poll、epoll 场景图?
- Client 如何告知 Server 断开连接,以及具体处理流程
- 单线程、多线程、单进程、多进程 & select、poll、epoll 组合使用流程详解?
- Socket 编程流程图中的三次握手与四次挥手?
- Server accept 接收一个 Client 后如何接收其他 Client,accept 函数具体表现?
- 多个客户端连一个服务器,accept 如何图示?
- server如何获取client的IP地址?
解决
1. 在最基础的CS服务器中, 一个 Client 是否可以同时连接多个 Server,如何实现?是,一个connect对应一个连接,若想当前client同时连接多个服务器,需要分别执行connect 2. 多个Client同时连接一个 Server 时,如何将其区分保存、处理?涉及到请求连接管理,可以用map、list、array等数据结构进行普通管理,也可使用连接池进行管理,如何设计合理高效的连接管理方案,对整个系统来说,是一个非常大的改进与优化。 server如何获取client的IP地址?在accept中addr参数,将自建ip指针地址传入accept中后,系统会自动写入