jiaren 发表于 2011-2-21 17:38:13

Lwip的TCP连接状态

请教弄过网络的大侠,在使用RT-Thread,调试Lwip的TCP客户端,TCP连接后如何得到连接的状态?我想在断线时进行处理,重新进行连接。

yyl81 发表于 2011-2-21 20:10:33

int lwip_get_error(int s)
{
        struct lwip_socket *sock;
        sock = get_socket(s);

        return sock->err;
}

jiaren 发表于 2011-2-22 11:47:40

哦?,谢谢

jiaren 发表于 2011-2-23 12:56:07

可惜,不清楚返回值含义。。。悲哀

yyl81 发表于 2011-2-23 13:56:11

看sockets.c
/** Table to quickly map an lwIP error (err_t) to a socket error
* by using -err as an index */
static const int err_to_errno_table[] = {
0,             /* ERR_OK          0      No error, everything OK. */
ENOMEM,      /* ERR_MEM      -1      Out of memory error.   */
ENOBUFS,       /* ERR_BUF      -2      Buffer error.            */
ETIMEDOUT,   /* ERR_TIMEOUT    -3      Timeout                  */
EHOSTUNREACH,/* ERR_RTE      -4      Routing problem.         */
ECONNABORTED,/* ERR_ABRT       -5      Connection aborted.      */
ECONNRESET,    /* ERR_RST      -6      Connection reset.      */
ESHUTDOWN,   /* ERR_CLSD       -7      Connection closed.       */
ENOTCONN,      /* ERR_CONN       -8      Not connected.         */
EINVAL,      /* ERR_VAL      -9      Illegal value.         */
EIO,         /* ERR_ARG      -10   Illegal argument.      */
EADDRINUSE,    /* ERR_USE      -11   Address in use.          */
-1,            /* ERR_IF         -12   Low-level netif error    */
-1,            /* ERR_ISCONN   -13   Already connected.       */
EINPROGRESS    /* ERR_INPROGRESS -14   Operation in progress    */
};

jiaren 发表于 2011-2-23 16:58:57

非常感谢,看来LS对此非常熟悉了。调试ing,貌似有些状态对不上。

sxf_zero 发表于 2012-1-10 16:58:18

关注

ljt80158015 发表于 2012-1-10 17:16:31

回复【1楼】yyl81
int lwip_get_error(int s)
{
        struct lwip_socket *sock;
        sock = get_socket(s);
        return sock->err;
}

-----------------------------------------------------------------------

s 为socket fd?

ffxz 发表于 2012-1-10 18:15:10

这个是rtt这边扩展的,不联系使用。1.0.0中应该有更好的方式
页: [1]
查看完整版本: Lwip的TCP连接状态