UDPでepollを使用するのに問題はありません。epollは、ファイル記述子に読み取るデータがあるかどうかを通知するだけです。(epollのマニュアルページからの)UDPソケットの動作に関連する読み取り/書き込み...操作にはいくつかの影響があります。
For stream-oriented files (e.g., pipe, FIFO, stream socket), the condition
that the read/write I/O space is exhausted can also be detected by
checking the amount of data read from / written to the target file
descriptor. For example, if you call read(2) by asking to read a certain
amount of data and read(2) returns a lower number of bytes, you can be
sure of having exhausted the read I/O space for the file descriptor. The
same is true when writing using write(2). (Avoid this latter technique if
you cannot guarantee that the monitored file descriptor always refers to a
stream-oriented file.)
一方、epollを直接使用することはあまり一般的ではありません。epollを使用する最良の方法は、たとえば、イベントループライブラリ、libev、またはlibeventを使用することです。これはより良いアプローチです。なぜなら、epollはすべてのシステムで利用できるわけではなく、この種のライブラリを使用すると、プログラムの移植性が向上するからです。
ここにUDPでのlibevの使用例があり、ここにlibeventでの他の例があります。