lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] Issue in TCP Socket with freeRTOS


From: abdullah246
Subject: [lwip-users] Issue in TCP Socket with freeRTOS
Date: Mon, 1 Jan 2018 02:40:21 -0700 (MST)

Hello, I am using FRDM-K64F and have changed the TCP echo+ freeRTOS according
to my need. I want a task that is always In a listening state. Whenever a
new client gets connected a new task should be created and some functions
should be added there. I am using the netconn api. I tried making the     
struct netconn *conn, *newconn; global as I need the descriptor for
netconn_write in another task. But I get an error : netconn_write: invalid
conn . The code is as follows: - 

#include "tcpecho.h"

#include "lwip/opt.h"

#if LWIP_NETCONN

#include "lwip/sys.h"
#include "lwip/api.h"

/*-----------------------------------------------------------------------------------*/
int threadid = 0;
const struct netconn *conn, *newconn;
err_t err;

static void New_Accept_Thread(void *pvParameters)
{
                err_t err;
                char text[] = "Abdullah Shafiq";
                threadid ++;
                PRINTF("In New_Accept_Thread id = %d\r\n",threadid);

                while (1)
                {

                                                 for(;;)
                                                 {
                                  err = netconn_write(newconn, text,
sizeof(text), NETCONN_COPY);
                                  vTaskDelay(100);
                                                 }

                }
}
static void 
tcpecho_thread(void *arg)
{
    struct netbuf *buf;
    void *data;
    u16_t len;
    LWIP_UNUSED_ARG(arg);

  conn = netconn_new(NETCONN_TCP);
  netconn_bind(conn, IP_ADDR_ANY, 5000);
#endif /* LWIP_IPV6 */
  LWIP_ERROR("tcpecho: invalid conn", (conn != NULL), return;);

  netconn_listen(conn);

  while (1)
  {
                err = netconn_accept(conn, &newconn);
                if (err == ERR_OK)
                {

                   if(sys_thread_new("AcceptThread", New_Accept_Thread,
NULL, 512, 2) == NULL)
                                   LWIP_ASSERT("tcpecho(): New Accept Task
creation failed.", 0);
                
    

                 netconn_close(newconn);
                 netconn_delete(newconn);

                  } // if Accept Successfull
  }
}
I tried commenting out netconn_close and netconn_delete but got no success




--
Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html



reply via email to

[Prev in Thread] Current Thread [Next in Thread]