该文件夹包含network.hh/cc 和 connection.hh/cc
network.hh/cc:
主要是包含类 class NetworkLayer: 包含clientRecord结构体数组,数组大小为定义的max,该结构体包含每个client是否连接、地址、地址长度等信息。
该类初始化时,首先将clientRecord结构体数组的所有连接置为false,然后调用build_server,并保存sockfd,然后创建一个线程。
该线程的参数就是该类本身(this),该线程用select监听0(stdin),sockfd,以及所有已连接的client。
若sockfd就绪,则调用acceptNewClient;若0就绪,调用process_command;最后执行checkAllClient(逐个判断client的fd是否就绪)
acceptNewClient封装了accept,并将地址端口信息保存到clientRecord数组中
connection.hh/cc:
build_server : 输入port,封装了socket、bind(port:1234)、listen(最大请求队列50),并返回sockfd
build_client:输入port、ip(字符串,最后通过gethostbyname获取ip地址),封装socket,connect并返回sockfd