NCFS 网络层 ./network

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值