SCTP接收消息功能返回零

时间:2014-02-06 05:59:45

标签: sockets sctp

我编写的客户端程序使用SCTP套接字进行通信。我正在使用sctp_recvmsg从socket读取特定用户可用的数据。我注意到有时sctp_recvmsg返回0值而不是读取的字节数或-1表示错误。我检查了我的代码,并且没有关闭正在读取数据的套接字。有人可以说明如何看待这种行为?

先谢谢。

此致 Sujay

1 个答案:

答案 0 :(得分:0)

根据this lksctp thread,如果对方在1对1 SCP连接中关闭连接,sctp_recvmsg()将返回0(see here以解释为1到1) -one和one-to-many连接) - 也就是说,当您使用SOCK_STREAM而不是SOCK_SEQPACKET创建套接字时。

引用:

  
    

未记录sctp_sendmsg和sctp_recvmsg的返回值,但是     我想sctp_sendmsg将返回-1并将errno设置为ECONNRESET     和sendmsg一样。但是,sctp_recvnmsg怎么样?川     如果半连接关闭,recvmsg应该返回0,但是没有     SCTP中的半连接。该函数的表现如何?

  
     

sctp_recvmsg()仅在1对1套接字上终止时返回0。   但是,上述通知适用于两种样式。