
连接过程:
服务端通过start命令开启运转,但并未开始监听,当运行到start中线程的启动时,伴随run方法开始监听客户端介入请求。
客户端开启,由config文件记录服务器ip及端口,通过服务器ip、端口建立一个socket,并且实例化ClientConversation,将socket及Client本身传进去(socket为底层信息传递作用,Client加入为了使Client层与conversation层交互更加方便及以便使用Client中还未定义,等未来定义的方法)。
当socket建立好,即发送了请求,当server.accept接收到之后,将socket及server作为参数实例化serverconversation,并将用户加入clientPool。
在serverConversation中socket作用是提取出客户端ip,生成其自己的id。

客户端向服务端单向交互:
由offline举例,客户端调用offline方法,其又调用了ClientConversation中的offline方法,将信息send到对端serverConversation,由其解析该信息,依据命令代码找到用户池中对应用户并调用server对应方法。

服务端向客户端单向交互:
由killClient举例:当服务器调用kill方法,实际调用serverConversation中的kill方法将信息send到对端clientConversation,由其解析该信息,依据命令调用client中对应方法。

客户端到客户端经由服务端中介:
实际是客户端到服务端再加上服务端到客户端的结合,其中在信息经由server中介转达之后,信息的来源和发送目标会发生变化。
本文详细介绍了客户端和服务端的连接过程,包括服务端如何监听客户端请求、客户端如何建立socket连接及信息传递机制。此外还深入探讨了客户端和服务端之间的单向交互方式以及客户端间通过服务端中介的数据交换过程。
1829

被折叠的 条评论
为什么被折叠?



