连接过程:
服务端通过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中介转达之后,信息的来源和发送目标会发生变化。