VTCP 错误代码解析

enum EVTcpErrorCode
{
   VTCP_ERROR_NOT_ENOUGH_MEMORY        = 1,    //内存不足
   VTCP_ERROR_INVALID_PARAMETER        = 2,    //参数错误
   VTCP_ERROR_INVALID_STATE            = 3,    //句柄状态错误
   VTCP_ERROR_INVALID_SOCKET            = 4,    //句柄错误
   VTCP_ERROR_TIMEOUT                    = 5,    //操作超时
   VTCP_ERROR_WOULDBLOCK                = 7,    //异步阻挡
   VTCP_ERROR_CONNRESET                = 8,    //远程关闭了连接
   VTCP_ERROR_CONNABORTED                = 9,    //本地关闭了连接
   VTCP_ERROR_CONNREFUSED                = 10,    //连接被积极拒绝
   VTCP_ERROR_MSG_SIZE                    = 11,    //消息尺寸错误
   VTCP_ERROR_CANCELLED                = 12,    //操作被取消
   VTCP_ERROR_NOT_FOUND                = 13,    //对象未发现
   VTCP_ERROR_BUSY                        = 14,    //系统繁忙
   VTCP_ERROR_SYSTEM_FAIL                = 15,    //系统调用失败
   VTCP_ERROR_NETRESET                    = 16,    //因保活检测失败而断线

};

对于 vtcp_bind 函数

VTCP_ERROR_SYSTEM_FAIL:  可能是端口被占用,导致系统失败。

对于vtcp_listen 函数

VTCP_ERROR_INVALID_STATE: 没有进行vtcp_bind 就直接调用了vtcp_listen而返回状态不正确。

对于vtcp_send/vtcp_recv函数:

VTCP_ERROR_INVALID_STATE: 在一个未连接的VTCP句柄上进行此调用而返回状态不正确。

对于vtcp_connect,vtcp_send,vtcp_sendto,vtcp_recv,vtcp_recvfrom,如果通过vtcp_ctl(s,VTCP_CTL_SET_NONBIO,&nonbio)设置了非阻塞模式

VTCP_ERROR_WOULDBLOCK: 表示操作被阻挡无法完成,在采用 QIO 模型设置为非阻塞模式应忽略该错误,用过vtcp_qio_set继续提交事件请求。