Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 绑定在UDP端口上返回失败_C_Udp - Fatal编程技术网

C 绑定在UDP端口上返回失败

C 绑定在UDP端口上返回失败,c,udp,C,Udp,考虑以下代码: iSocket = socket(PF_INET, SOCK_DGRAM, 0); memset(&sSocketAddr, 0, sizeof(sSocketAddr)); sSocketAddr.sin_family = AF_INET; sSocketAddr.sin_addr.s_addr = htonl(INADDR_ANY); sSocketAddr.sin_port = htons(10003); Res = bind(iSocket, (struct

考虑以下代码:

iSocket = socket(PF_INET, SOCK_DGRAM, 0);
memset(&sSocketAddr, 0, sizeof(sSocketAddr));

sSocketAddr.sin_family = AF_INET;
sSocketAddr.sin_addr.s_addr = htonl(INADDR_ANY); 
sSocketAddr.sin_port = htons(10003);
Res = bind(iSocket, (struct sockaddr *)&sSocketAddr, sizeof(struct sockaddr_in));

在上面的代码中,bind返回-1。但对于任何其他端口号,它返回0(无错误)。我需要根据UDP客户端的要求使用10003。如何才能使其发挥作用

如bind手册页()所述:

在出现错误时,返回-1,并正确设置errno

我认为这是每个POSIX调用中的标准过程,有一个名为errno的整数包含实际错误的值。您可以手动检查其值,也可以将原语用作perror或strerror()


您可能想
#包括
(和打印功能的
stdio.h

您检查过实际错误吗?实际错误是什么?当你忽略了最重要的信息时,你不能期望人们回答这样的问题。可能其他应用程序正在该端口上侦听。您可以通过运行
netstat-a | grep“49184”
@Corbin和@EJP来找到这一点:如何检查实际错误?如果我知道这一切,我自己就会找到答案:——)
if (Res  == -1) { // some error has occurred
    // prints "socket error: " + the error message:
    perror("socket error");
}