FUdpSocketReceiver receive null data

Hello, I got something very strange, and have no idea what happened.
step:

  1. I build a windows c++ exe. which only send a 32byte udp buff to UE program every second (on the same PC).
  2. At UE side, I build a c++ plugin, and build a c++ ActorComponent.
  3. the ActorComponent has 2 udp socket, one bind FUdpSocketReceiver, receive from outside exe; the other send udp buff to the outside exe.( In order to make things clear, the out side c++ program not call recvfrom function.)
  4. From UE plugin, I have 2 place send out buff. one is TickComponent function, the other is call from Bp( from player controller).
  5. If only one place send out upd buff, FUdpSocketReceiver worked well. But, if two place tick send out buff, some times(1/2 ~1/5 rate) ,the Receive function will get FArrayReaderPtr with Num() 0.

did I miss something? please help.