要求是这样的:采用UDP协议,下位机(为STM32单片机)进行组网,要求上位机能够随时接受下位机传来的实时数据,但又不能一直处于等待接受下位机数据状态。请问上位机接受程序该肿么设计?我感觉阻塞或轮询都不合适的!UDP网络C#

解决方案 »

  1.   

    我是这样做的,先开一个线程A,里面用异步方式接收数据。当要发送数据时,在界面上设置一个button,click后暂停线程A,同步方式发送数据,然后恢复线程。但是测试显示,同步方式发送数据后,不能接受到数据。
      

  2.   

    没明白 “但又不能一直处于等待接受下位机数据状态”什么意思。
    上位机 c# 写UDP通信。
    写个线程,在线程里处理接收和发送。
     发送函数的处理:把 发送数据 入队列。
    线程中发送处理: 从队列取数据,用client发送。(需要注意队列的出队和入队需加锁保护)。
    线程中的接收: 判断是否有数据需要接收,有就读取数据。
    或者,发送不需要在线程处理。直接client的send。