超悩んでます。やばいです。教えてください。

Linux上でネットワークプログラミングしてます。
IPv4でUDPで受信するプログラムです。
socket()、bind()、setsockopt()は全て成功し正常終了しているのに、
recv()だけがエラーとなり受信できません。
ソケットは確実に開けており、netstatでも確認済みです。
ICMP destination unreachableを発信しています。
何でですか。