Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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
Sockets UDP套接字:错误34,但工作正常_Sockets_Udp - Fatal编程技术网

Sockets UDP套接字:错误34,但工作正常

Sockets UDP套接字:错误34,但工作正常,sockets,udp,Sockets,Udp,我有一个recvfrom返回错误34,我已经检查过,它意味着“数值结果超出范围”,但在它正确接收数据以及接收的数据量正确后。我想过一段时间它可能会崩溃。这里我显示了对recvfrom的调用: int dataRCV = -55; dataRCV = recvfrom ( sockfd2, data_CPV, sizeData_CPV, 0, (struct sockaddr*)&client_addr2,&client_addresslen2); fprintf(%i

我有一个recvfrom返回错误34,我已经检查过,它意味着“数值结果超出范围”,但在它正确接收数据以及接收的数据量正确后。我想过一段时间它可能会崩溃。这里我显示了对recvfrom的调用:

int dataRCV = -55;

    dataRCV = recvfrom ( sockfd2, data_CPV, sizeData_CPV, 0, (struct sockaddr*)&client_addr2,&client_addresslen2);

fprintf(%i %s, dataRCV,sterror(errno));
谢谢

recvfrom()
返回读取的字节数,而不是错误代码。如果
recvfrom()
失败,它将返回-1,
errno
将报告实际的错误代码

int dataRCV = recvfrom ( sockfd2, data_CPV, sizeData_CPV, 0, (struct sockaddr*)&client_addr2, &client_addresslen2);
if (dataRCV == -1)
    fprintf(%i %s, errno, sterror(errno));

因此,如果将
dataRCV
设置为34,则
recvfrom()
已成功读取34个字节,而不是失败。

以任何方式使用
errno
都是无效的,除非之前的系统调用已返回-1。