problem with creating TCP socket

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

problem with creating TCP socket

Gavin
Hi,

I got one problem about creating TCP socket.

In my case, I created one TCP socket, connected to server and then closed socket, and repeated this process.

But I found that this process only can run 4 times, because the socket can't be created from the 5th run, the socket can't be create anymore.

In my understanding, based on my test case, the socket should be created in every run. Because I closed the socket at the end.

I did some study on the forum, but I still can't fix this problem.

BTW, I work on LwIP 1.4.1 with FreeRTOS on TM4C eval board.

Does anyone have suggestion for me?

Here is the lwipopt.h
//*****************************************************************************
//
// ---------- Stellaris / lwIP Port Options ----------
//
//*****************************************************************************
#define HOST_TMR_INTERVAL               100         // default is 0
#define EMAC_PHY_CONFIG (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN |      \
                         EMAC_PHY_AN_100B_T_FULL_DUPLEX)
#define PHY_PHYS_ADDR                   0
#define NUM_TX_DESCRIPTORS              24
#define NUM_RX_DESCRIPTORS              8

//*****************************************************************************
//
// ---------- Platform specific locking ----------
//
//*****************************************************************************
#define SYS_LIGHTWEIGHT_PROT            1           // default is 0
#define NO_SYS                          0           // default is 0
#if !NO_SYS
#define LWIP_COMPAT_MUTEX               1
#define RTOS_FREERTOS                   1
#define LWIP_PROVIDE_ERRNO 1
#endif /* !NO_SYS */


//*****************************************************************************
//
// ---------- Memory options ----------
//
//*****************************************************************************
#define MEM_ALIGNMENT                   4         // default is 1
#define MEM_SIZE                        (64 * 1024)  // default is 1600, was 16K
#define MEM_USE_POOLS                   1
#define MEMP_USE_CUSTOM_POOLS           1
#define MEM_USE_POOLS_TRY_BIGGER_POOL 1
//*****************************************************************************
//
// ---------- Internal Memory Pool Sizes ----------
//
//*****************************************************************************
#define MEMP_NUM_PBUF                     64    // Default 16
#define MEMP_NUM_UDP_PCB                8
#define MEMP_NUM_TCP_PCB                  8   // Default is 5
#define MEMP_NUM_SYS_TIMEOUT              10
#define MEMP_NUM_NETCONN                 8
#define PBUF_POOL_SIZE                    64    // Default 16

//*****************************************************************************
//
// ---------- IP options ----------
//
//*****************************************************************************
#define IP_REASSEMBLY                   0           // default is 1
#define IP_FRAG                         0           // default is 1

//*****************************************************************************
//
// ---------- RAW options ----------
//
//*****************************************************************************
#define LWIP_RAW                        0

//*****************************************************************************
//
// ---------- DHCP options ----------
//
//*****************************************************************************
#define LWIP_DHCP                       1           // default is 0

//*****************************************************************************
//
// ---------- UDP options ----------
//
//*****************************************************************************
#define LWIP_UDP                        1

//*****************************************************************************
//
// ---------- TCP options ----------
//
//*****************************************************************************
#define LWIP_TCP                        1
#define TCP_WND                         2048   // default is 2048
#define TCP_MSS                        256        // default is 128
#define TCP_SND_BUF                     (4 * TCP_MSS)
#define TCP_SND_QUEUELEN                (4 * (TCP_SND_BUF/TCP_MSS))

//*****************************************************************************
//
// ---------- Pbuf options ----------
//
//*****************************************************************************
#define PBUF_LINK_HLEN                  16          // default is 14
#define PBUF_POOL_BUFSIZE               1024
                                                    // default is LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)
#define ETH_PAD_SIZE                    0           // default is 0

//*****************************************************************************
//
// ---------- Thread options ----------
//
//*****************************************************************************
#define TCPIP_THREAD_NAME              "tcpip_thread"
#define TCPIP_THREAD_STACKSIZE          1024
#define TCPIP_THREAD_PRIO               3
#define TCPIP_MBOX_SIZE                 32

//*****************************************************************************
//
// ---------- Sequential layer options ----------
//
//*****************************************************************************
#define LWIP_NETCONN                    1         // default is 1

//*****************************************************************************
//
// ---------- Socket Options ----------
//
//*****************************************************************************
#define LWIP_SOCKET                     1           // default is 1
#define LWIP_COMPAT_SOCKETS             1
Reply | Threaded
Open this post in threaded view
|

Re: problem with creating TCP socket

Jan Menzel
Hi Gavin!
        My code uses close() (which is a define to lwip_close()) which frees
all the memory. You may wont to trace close() to check if the memory is
really freed up.

        Jan

On 27.11.2014 11:18, Gavin wrote:

> Hi,
>
> I got one problem about creating TCP socket.
>
> In my case, I created one TCP socket, connected to server and then closed
> socket, and repeated this process.
>
> But I found that this process only can run 4 times, because the socket can't
> be created from the 5th run, the socket can't be create anymore.
>
> In my understanding, based on my test case, the socket should be created in
> every run. Because I closed the socket at the end.
>
> I did some study on the forum, but I still can't fix this problem.
>
> BTW, I work on LwIP 1.4.1 with FreeRTOS on TM4C eval board.
>
> Does anyone have suggestion for me?
>
> Here is the lwipopt.h
> //*****************************************************************************
> //
> // ---------- Stellaris / lwIP Port Options ----------
> //
> //*****************************************************************************
> #define HOST_TMR_INTERVAL               100         // default is 0
> #define EMAC_PHY_CONFIG (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN |    
> \
>                          EMAC_PHY_AN_100B_T_FULL_DUPLEX)
> #define PHY_PHYS_ADDR                   0
> #define NUM_TX_DESCRIPTORS              24
> #define NUM_RX_DESCRIPTORS              8
>
> //*****************************************************************************
> //
> // ---------- Platform specific locking ----------
> //
> //*****************************************************************************
> #define SYS_LIGHTWEIGHT_PROT            1           // default is 0
> #define NO_SYS                          0           // default is 0
> #if !NO_SYS
> #define LWIP_COMPAT_MUTEX               1
> #define RTOS_FREERTOS                   1
> #define LWIP_PROVIDE_ERRNO 1
> #endif /* !NO_SYS */
>
>
> //*****************************************************************************
> //
> // ---------- Memory options ----------
> //
> //*****************************************************************************
> #define MEM_ALIGNMENT                   4         // default is 1
> #define MEM_SIZE                        (64 * 1024)  // default is 1600, was
> 16K
> #define MEM_USE_POOLS                   1
> #define MEMP_USE_CUSTOM_POOLS           1
> #define MEM_USE_POOLS_TRY_BIGGER_POOL 1
> //*****************************************************************************
> //
> // ---------- Internal Memory Pool Sizes ----------
> //
> //*****************************************************************************
> #define MEMP_NUM_PBUF                     64    // Default 16
> #define MEMP_NUM_UDP_PCB                8
> #define MEMP_NUM_TCP_PCB                  8   // Default is 5
> #define MEMP_NUM_SYS_TIMEOUT              10
> #define MEMP_NUM_NETCONN                 8
> #define PBUF_POOL_SIZE                    64    // Default 16
>
> //*****************************************************************************
> //
> // ---------- IP options ----------
> //
> //*****************************************************************************
> #define IP_REASSEMBLY                   0           // default is 1
> #define IP_FRAG                         0           // default is 1
>
> //*****************************************************************************
> //
> // ---------- RAW options ----------
> //
> //*****************************************************************************
> #define LWIP_RAW                        0
>
> //*****************************************************************************
> //
> // ---------- DHCP options ----------
> //
> //*****************************************************************************
> #define LWIP_DHCP                       1           // default is 0
>
> //*****************************************************************************
> //
> // ---------- UDP options ----------
> //
> //*****************************************************************************
> #define LWIP_UDP                        1
>
> //*****************************************************************************
> //
> // ---------- TCP options ----------
> //
> //*****************************************************************************
> #define LWIP_TCP                        1
> #define TCP_WND                         2048   // default is 2048
> #define TCP_MSS                        256        // default is 128
> #define TCP_SND_BUF                     (4 * TCP_MSS)
> #define TCP_SND_QUEUELEN                (4 * (TCP_SND_BUF/TCP_MSS))
>
> //*****************************************************************************
> //
> // ---------- Pbuf options ----------
> //
> //*****************************************************************************
> #define PBUF_LINK_HLEN                  16          // default is 14
> #define PBUF_POOL_BUFSIZE               1024
>                                                     // default is
> LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)
> #define ETH_PAD_SIZE                    0           // default is 0
>
> //*****************************************************************************
> //
> // ---------- Thread options ----------
> //
> //*****************************************************************************
> #define TCPIP_THREAD_NAME              "tcpip_thread"
> #define TCPIP_THREAD_STACKSIZE          1024
> #define TCPIP_THREAD_PRIO               3
> #define TCPIP_MBOX_SIZE                 32
>
> //*****************************************************************************
> //
> // ---------- Sequential layer options ----------
> //
> //*****************************************************************************
> #define LWIP_NETCONN                    1         // default is 1
>
> //*****************************************************************************
> //
> // ---------- Socket Options ----------
> //
> //*****************************************************************************
> #define LWIP_SOCKET                     1           // default is 1
> #define LWIP_COMPAT_SOCKETS             1
>
>
>
>
> --
> View this message in context: http://lwip.100.n7.nabble.com/problem-with-creating-TCP-socket-tp23553.html
> Sent from the lwip-users mailing list archive at Nabble.com.
>
> _______________________________________________
> lwip-users mailing list
> [hidden email]
> https://lists.nongnu.org/mailman/listinfo/lwip-users
>


_______________________________________________
lwip-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/lwip-users