Chinaunix

标题: recv函数疑问 [打印本页]

作者: Zoelov    时间: 2013-10-23 09:50
标题: recv函数疑问
我在使用函数recv接收消息时,最后一个参数设置为MSG_EOR,我不理解这个MSG_EOR是什么作用,而且有的时候会出现假死现象,recv一直接收不到消息,卡主不动了,这是什么问题呢?
ilRcvlen=recv(sockfd,buffer,ilLen,MSG_EOR))
作者: Mr木子丶Q    时间: 2013-10-24 15:18
recv函数在套接字应用中,我一般设置最后一个参数为0,接收不到消息,你要看返回信息;
len = recv( sock_id, str, str_len, 0 );
看看len的返回值,要是小于0说明之间的套接字已经出错 =0说套接字已关闭,还有确认下那边有send吗
作者: crazyhadoop    时间: 2013-10-27 22:55
man recv--> MSG_EOR   indicates end-of-record; the data returned completed a record (generally used with sockets of type SOCK_SEQPACKET).


那不是假死是阻塞了。直到收到数据才会返回。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2