我们做RRID RAADER的,现在做微软的 BizTalk 的中间件,以便支持我们的设备 。
目前我们的READER 支持 UDP 连接,支持同步(就是发一次命令,READER读一次卡)和异步(发一个命令,READER定时读,并且把读到的卡不停向外发)两种方式,目前我在做实验,
把我们的READER的读卡间隔设置为 100MS,就是说READER每100ms就读一次卡,并且把读到的卡号就抛出来,而接收用的TIMER方法来做,而1s 通过UDP接受一次,这样可能丢失掉很多数据,效果不是很理想。有几个问题想请教大家
1 通过UDP发异步命令后,READER工作开始了(有指示灯),这时应该UDP连接建立了吧?没做close动作,但收数据时,收不到,而我再连接一次后才能收到数据,问:如何一直保持连接?2 用多线程方法,一个线程发命令,一个线程接受数据 是否可行? 发命令其实就一次动作,后每100ms 就读卡,并把读到的卡号发出来, 用一个线程接收有问题否? 或有其他方法?

解决方案 »

  1.   

    1. UDP协议本来就是面向非连接的,所以每次都要申请吧2. 只要控制好,别死锁就没有问题了
      

  2.   

    我很奇怪,这样要求数据准确性很高的东西干吗做成udp呢?
      

  3.   

    在北京时,MS的专家说 可以用UDP的 (目前我们的设备只做UDP,我还没做TCP解包)
    我也知道 TCP 是面向连接的,UDP 不是,
    我们的要求也就是 只要UDP连接保持就可以了,断了再连下,在C#05 中可以判断是否断了
      

  4.   

    现在关键问题是 用线程怎么接受? 如何合理的设计 管理线程
    我做MCU底下的多点,临时安排搞这个东西 没办法也
    有好的建议也给些,
      

  5.   

    http://www.cnblogs.com/allancandy/archive/2006/09/30/519212.html