recv返回值

返回值为n

1.n>0,正常读取n个字节

2.n==0,socket对方节点正常shutdown

3.n==-1,未能正常读取数据,有以下几种情况,errno被置为以下几种:

EAGAIN or EWOULDBLOCK
The socket is marked nonblocking and the receive operation would block, or a receive timeout had been set and the timeout expired before data was received.

这种情况要注意,前者是非阻塞方式下的一种正常返回,后者是超时的返回情况。
POSIX.1-2001 allows either error to be returned for this case, and does not require these constants to have the same value, so a portable application should check
for both possibilities.

EBADF The argument sockfd is an invalid descriptor.

ECONNREFUSED
A remote host refused to allow the network connection (typically because it is not running the requested service).

EFAULT The receive buffer pointer(s) point outside the process's address space.

EINTR The receive was interrupted by delivery of a signal before any data were available; see signal(7).

EINVAL Invalid argument passed.

ENOMEM Could not allocate memory for recvmsg().

ENOTCONN
The socket is associated with a connection-oriented protocol and has not been connected (see connect(2) and accept(2)).

ENOTSOCK
The argument sockfd does not refer to a socket.

转载于:https://www.cnblogs.com/tzhangofseu/archive/2011/12/09/2282466.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值