Linux C 网络数据多端口收发,该怎么解决

Linux C 网络数据多端口收发
我已在Liunx C下实现了UDP下单端口网络数据的收发问题,目前面临着不知道如何实现linux C下多端口数据的收发,因为recvfrom()是阻塞式的,我所要解决的是要同时监控多端口的数据,何者数据来就收哪一个,没有数据的就处于等待状态,如果没有数据的能够迅速返回无效值也可。
------解决方案--------------------
不用多线程,使用单线程就可以了,用select来监听多的端口的数据就可以,