现在IOCP的数据收发和通知都搞定了。现在有以下的应用,一般处理的思路是什么,求解?
  ServerA.exe ==>开启2个TCPServer端口,分别为PortAA,PortAB.
  PortA上用来接收采集器发过来的数据(有无线的,有有线,都是按照统一的数据协议)
  PortB上用来接收客户端的软件的连接。  现在问题(1)PortA上来的数据,都要转发给PortB上的连接,这里一般是怎么处理?
  我现在的处理方式是,把PortA上每个连接上来的消息新数据,放到一个队列中,在另外一个线程中,定时取发送给PortB上的每一个连接。总感觉这样方式不好,大家一般是怎么处理的?、  问题(2):在客户端中,想发有一个命令给PortA上的某个采集设备,这时候怎么处理?

解决方案 »

  1.   

    1.这个要看你得代码怎么设计了,可以直接PortA收到后,直接在线程回调中通过PortB的socket句柄send出去,不需要搞线程队列2.和上面一样的处理,在接收回调中,处理完命令,通过命令中的目标标志,直接send给它就可以了
      

  2.   

    在PortA上接收到数据后直接遍历PortB上的链接,然后send出去不行吗?
      

  3.   

       回楼上的,主要是在 发送给PortB端口上的所有连接前,我的数据还需要有一些逻辑处理。   比如协议解析,根据协议解析的内容,才能决定是否发送给PortB上的所有连接。   同时还有可能需要发送一些反馈数据给PortA上的当前连接的返回值。PortA上的某个节点发送一个心跳数据,此时程序只需要返回一个心跳给PortA上的当前连接,不要给PortB上的连接座任何处理。
      

  4.   


    这又有什么关系,PortB上的SOKET你总可以得到啊,发给谁、什么时候发、发什么内容都是你说了算!