NCFS 网络层 ./network

来源:互联网 发布:网络层通过什么通信 编辑:程序博客网 时间:2024/06/05 04:02

connection.hh:

    定义了建立client和server、send和receive数据以及64位数进行htonl转换的工具。


network.hh:

    SendItem 根据QueneItem->target 来决定发送给所有链接还是发送给某一已建立的链接。

    AcceptNewClient accept一个client,并在ClientRecord中记录链接状态。


在network Layer中封装了一些socket操作:

    build_server: socket--->bind--->listen. 构造函数中初始化NetworkLayer时,绑定端口号为1234。

    AcceptNewClient: accept

    build_client: socket--->connet


构造函数NetworkLayer初始化,将ClientRecord中所有链接状态设置为false,然后调用build_server,端口号为1234,并将socket保存为_ServerSocket,再创建线程来监测server。采用select,如果有标准读,则调用process_command;如果_ServerSocket就绪,说明有新的链接,则调用AcceptNewClient建立链接;最后都将CheckClient(network.hh中的纯虚函数,在reportLayer中实现),依次监测每个链接,如果就绪,则recv一个char,如果接收到0个字节,则断开连接,并把ClientRecord中的状态设置为false,否则调用ModuleDispacher,根据收到的char来判断应该做什么样的处理。


    

0 0