If you had a Socket you could just set the receive buffer size to the desired bandwidth-delay product, but, as you don't, you will just have to sleep between receive calls. Experiment or some feedback-based arithmetic will yield the appropriate sleep intervals.