zoukankan      html  css  js  c++  java
  • DIOCP之数据接收事件

    一、不引用编码器与解码器的情况下(ECHO的DEMO)

       类TIOCPtcpclient,接收服务器的数据事件:OnRecvBuffer

       类TDiocpTcpServer,接收客户端数据事件:OnRecvBuffer

       TIocpTcpServer

        property OnDataReceived: TOnDataReceived read FOnDataReceived write  FOnDataReceived;

    二、引用编码器与解码器的情况下

      编码器与解码器对接收数据进行了一次封装,在OnRecvBuffer中后,先对数据进行缓存存放,然后调用解码器进行解码数据, 如果解码成功会用IocpTask/或者QWokers把数据对象投递到逻辑线程进行处理<常说的通信线程和工作线程分离的模式>。

      在这个函数下面可以不用去管粘包问题。接受到的是你客户端发送过来的对象。 

      TIOCPCoderClientContext

      procedure dataReceived(const pvDataObject:TObject); override;

       ChatDemo下:接收数据在TIocpRemoteContext事件OnRecvObject(接收对象)

  • 相关阅读:
    Java线程九:线程的调度-让步
    Java线程八:线程的调度-优先级
    Java线程七:线程的调度-休眠
    Java线程六:线程的交互
    丸の内の霊 5
    丸の内の霊 4
    丸の内の例 3
    丸の内の例 2
    幽霊物件 1
    質問力 D
  • 原文地址:https://www.cnblogs.com/diocp/p/5848220.html
Copyright © 2011-2022 走看看