Ok, I found a bug in the client. The server works correctly.
On Tue, Oct 11, 2011 at 4:51 PM, Damiano Grechi <[email protected]>wrote: > Hi, > > I'm using LwIP and FreeRTOS to develope a simple client/server > application with STM3220G board. > The client (running on PC) connects to server and then sends a message > every 2 seconds. > The server (running on STM3220G board) processes the incoming message and > replies with an appropriate response. > > After a fixed number of read/write, the server netconn_recv() returns NULL > and the connection error is equal to ERR_CLSD. It seems a memory > allocation problem. > > Unlike what has been done in the examples, after the netconn_accept() the > connection is kept open: the server doesn't call netconn_close() and > netconn_delete() after netconn_write(). Is this allowed? > > The server code is like the following: > > static void thread_1(void *arg) > { > conn = netconn_new(NETCONN_TCP); > > if (conn!= NULL) > { > err = netconn_bind(conn, NULL, 9229); > > if (err == ERR_OK) > { > netconn_listen(conn); > > while(1) > { > if (CONN_NUM < 1) > { > MY_CONN = netconn_accept(conn); > > CONN_NUM++; > } > else > { > vTaskDelay(500); > } > } > } > } > } > > static void thread_2(void *arg) > { > for (;;) > { > if (CONN_NUM > 0) > { > inbuf = netconn_recv(MY_CONN); > > if (inbuf != NULL) > { > if (netconn_err(MY_CONN) == ERR_OK) > { > netbuf_data(inbuf, (void**)&recv_buf, &recv_buflen); > > if (recv_buflen >= 9) > { > msg_id = recv_buf[4]; > > switch (msg_id) > { > case MSG_1: > //... > netconn_write(MY_CONN, (const unsigned char*)send_buff, > (size_t)send_buflen, NETCONN_NOCOPY); > break; > > case MSG_2: > //... > netconn_write(MY_CONN, (const unsigned char*)send_buff, > (size_t)send_buflen, NETCONN_NOCOPY); > break; > > default: > break; > } > } > > while( netbuf_next(inbuf) >= 0 ){} > } > > netbuf_delete(inbuf); > } > > vTaskDelay(10); > } > else > { > vTaskDelay(500); > } > } > } > > Thanks. > > -- > > Damiano Grechi > ALTA LAB S.r.l. > Via Boncompagni, 67 > 20139 - Milano - Italy > Tel: +39 02 36515556 > Fax: +39 02 36515559 > email: [email protected] > > -- Damiano Grechi ALTA LAB S.r.l. Via Boncompagni, 67 20139 - Milano - Italy Tel: +39 02 36515556 Fax: +39 02 36515559 email: [email protected]
_______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
