如何获取recv()
in socket 通信返回的错误号或错误字符串,recv()
返回-1
为读取大小,这意味着发生了一些错误。我想知道错误的具体原因。所以我怎么能得到那个。
问问题
5428 次
2 回答
9
您需要包含errno.h并使用errno
全局变量来检查最后一个错误代码。此外,您可以使用strerror()
打印解释错误的语言环境感知字符串。
例子
#include <errno.h>
ssize_t size;
if ((size = recv( ... )) == -1)
{
fprintf(stderr, "recv: %s (%d)\n", strerror(errno), errno);
}
于 2016-01-18T12:24:02.710 回答
2
您可以使用头文件中的errno
变量。errno.h
从手册页(强调我的)
返回值
成功完成后,
recv()
应返回消息的长度(以字节为单位)。如果没有可接收的消息并且对等方已经执行了有序关闭,recv()
则应返回 0。否则,应返回 -1 并errno
设置为指示错误。
或者,您也可以调用perror()
/strerror()
来获取与错误相关的人类可读字符串。
于 2016-01-18T12:21:06.433 回答