RPCもこのスレでいいんでしょうか。

下のコードで最後のsvcudp_create()がNULLを返すんですが、
理由が分かる方いますか?(errnoはEBADF。)

int sFd;
SVCXPRT *transp;
struct sockaddr_in addr;
sFd = socket(AF_INET, SOCK_DGRAM, 0);
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = 0;
bind(sFd, (struct sockaddr *)&addr, sizeof(addr))
transp = (SVCXPRT *)svcudp_create(sFd);

socket()とbind()は正常に返ってきているんですが・・・。