如何在套接字通信中获取recv()
返回的错误号或错误字符串,recv()
返回-1
作为读取大小,这意味着发生了一些错误。我想知道错误的具体原因。所以我怎么能得到它。
答案 0 :(得分:7)
您需要包含 errno.h 并使用errno
全局变量来检查上一个错误代码。此外,您可以使用strerror()
打印解释错误的语言环境识别字符串。
实施例
#include <errno.h>
ssize_t size;
if ((size = recv( ... )) == -1)
{
fprintf(stderr, "recv: %s (%d)\n", strerror(errno), errno);
}
答案 1 :(得分:2)
您可以使用 protected void grdview_RowDataBound(object sender, EventArgs e)
{
if(!admin())
{
grdview.Columns[5].Visible = true;
}
else
{
//do something
}
}
头文件中的errno
变量。
来自man page(强调我的)
返回值
成功完成后,
errno.h
将以字节为单位返回消息的长度。如果没有可以接收的消息并且对等体已经执行了有序关闭,则recv()
将返回0. 否则,将返回-1并设置recv()
以指示错误。强>
或者,您也可以致电perror()
/ strerror()
以获取与错误相关的人类可读字符串。