首页 > 编程知识 正文

oracle 存储过程 返回值,shell 函数返回值

时间:2023-05-06 01:53:43 阅读:167390 作者:4806

函数原型:

size_trecv(intsockfd,void *buf,size_t len,int flags );

该函数的第一个参数创建接收套接字描述符;

第二个参数表示存储recv函数接收的数据的缓冲区。

第三个参数表示缓冲区buf的长度。

第四个参数通常设置为0 (标志位)

recv函数返回实际copy的字节数。 如果在复制期间recv出错,则返回SOCKET_ERROR; 如果网络在等待协议接收数据时中断,recv函数将返回0。

recv函数只是一个拷贝数据,真正的接收数据是通过协议实现的。

默认的recv函数套接字被阻止

块和非块recv返回值没有区别,都是

0错误

=0关闭连接

0接收数据大小、

特殊:如果值为0,且(errno==eintr|| errno==ewouldblock|| errno==e again ) ),则认为连接正常,并继续接收。

但是,在块模式下recv将接收数据块化,在非块模式下如果没有数据则返回,不块地读取,因此需要循环读取)。

返回说明:

如果执行成功,则返回已接收的字节数。 如果另一端是封闭的,则返回0。 失败返回-1,errno被设置为以下值之一

EAGAIN :套接字已标记为非阻塞,接收操作已被阻塞或接收超时

EBADF:sock不是有效的说明词

ECONNREFUSE :远程主机阻止网络连接

EFAULT :内存空间访问错误

EINTR :操作被红绿灯中断

EINVAL :参数无效

ENOMEM :内存不足

ENOTCONN :与面向连接相关联的套接字尚未连接

ENOTSOCK:sock索引中的不是套接字

如果返回值为0,则连接正常关闭。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。