<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Can´t maintain two sockets connected at time in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191823#M3799</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jianwu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, you need to destroy the task since it won't be used any more for the closed socket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only stack consumed is the used by the task created to handle that connection.&lt;/P&gt;&lt;P&gt;With the TaskAwareDebugging, you can see that every new TCP socket connection needs extra 500+4392x2+148=9432B/59.0KB=16% as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MQX -&amp;gt; Lightweight Memory Block Summary Size (Decimal) Owner&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&lt;/P&gt;&lt;P&gt;500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Control Block;RTCS/TCP&lt;/P&gt;&lt;P&gt;4392&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Tx Window;RTCS/TCP&lt;/P&gt;&lt;P&gt;4392&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Rx Window;RTCS/TCP&lt;/P&gt;&lt;P&gt;148&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Send Clock;RTCS/TCP&lt;/P&gt;&lt;P&gt;(TCP/IP Task id is 0x10001)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The default OPT_TBSIZE and OPT_RBSIZE are 4380 bytes. If you call setsockopt() to reduce these two, for example, to a quarter like 1095 bytes, the memory usage to open a new TCP socket will drop from 16% to 4.7% as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MQX -&amp;gt; Lightweight Memory Block Summary Size (Decimal) Owner&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&lt;/P&gt;&lt;P&gt;500&amp;nbsp; -&amp;gt;&amp;nbsp; 500&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Control Block;RTCS/TCP&lt;/P&gt;&lt;P&gt;4392 -&amp;gt; 1108&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Tx Window;RTCS/TCP&lt;/P&gt;&lt;P&gt;4392 -&amp;gt; 1108&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Rx Window;RTCS/TCP&lt;/P&gt;&lt;P&gt;148&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp; 84&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Send Clock;RTCS/TCP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the problems persists please set a slower number, try next: &lt;/P&gt;&lt;P&gt;uint_32 value;&lt;/P&gt;&lt;P&gt;… &lt;/P&gt;&lt;P&gt;value = 256; &lt;/P&gt;&lt;P&gt;setsockopt(sock, SOL_TCP,OPT_TBSIZE,&amp;amp;value,sizeof(value)); &lt;/P&gt;&lt;P&gt;setsockopt(sock, SOL_TCP,OPT_RBSIZE,&amp;amp;value,sizeof(value)); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this to see if you can get more resources.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am sorry but I did not catch your last question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regardsm&lt;/P&gt;&lt;P&gt;Garabo.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 23 Apr 2015 21:07:16 GMT</pubDate>
    <dc:creator>Luis_Garabo</dc:creator>
    <dc:date>2015-04-23T21:07:16Z</dc:date>
    <item>
      <title>Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191809#M3785</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have implemented a server that handles two sockets&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A client can connect to any of these sockets (X or Y) and start sharing information in appropriately way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But when a client attempts to connect to both sockets of the server, the server fails. No matter the order of the connection request to the sockets, the first connection request always works and the second fails (accept function). Now when I get the error, it is 0 (zero).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have noticed that if the client connects to a socket, then sends the necessary data and then closes the socket before starting a new connection, then there are no faults. But obviously I do not want to be opening and closing connections to the server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyone know how to solve this problem?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Server:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Kinetis k60 (Tower Kit):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MQX 3.7&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Codewarrior 10.1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Client:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PC (Linux)&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13474866964909135" jivemacro_uid="_13474866964909135"&gt;
&lt;P style="text-align: justify;"&gt;Socket_Y = socket(...);&lt;/P&gt;
&lt;P style="text-align: justify;"&gt;...&lt;/P&gt;
&lt;P style="text-align: justify;"&gt;stServerAddr.sin_port = Port_X;&lt;/P&gt;
&lt;P style="text-align: justify;"&gt;...&lt;/P&gt;
&lt;P&gt;bind(Socket_X, ...);&lt;/P&gt;
&lt;P&gt;listen(Socket_X, ...);&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;stServerAddr.sin_port = Port_Y;&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;bind(Socket_Y, ...);&lt;/P&gt;
&lt;P&gt;listen(Socket_Y, ...);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;....&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;while(1)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SocketTemp = RTCS_selectall(10);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(SocketTemp )&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(SocketTemp == Socket_X)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClientSocket1 = accept(Socket_X,...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(ClientSocket1 = -1)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTCS_geterror(Socket_X)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(SocketTemp == Socket_Y)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClientSocket2 = accept(Socket_Y,...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(ClientSocket2 = -1)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTCS_geterror(Socket_Y)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(SocketTemp == ClientSocket1)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = recv(...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(error = -1)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shutdown(ClientSocket1,...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send(...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(u32SocketTemp == ClientSocket2)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = recv(...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(error = -1)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shutdown(ClientSocket2,...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send(...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Not recognized */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* TimeOut -- Nothing to do */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Edgar Sevilla&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:43:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191809#M3785</guid>
      <dc:creator>edgarsevilla</dc:creator>
      <dc:date>2020-10-29T09:43:53Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191810#M3786</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Edgar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are you adding enough sockets for your application? The web_hvac demo application is a good example of how to implement this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Take a look to the file:&lt;/P&gt;&lt;P&gt;C:\Program Files\Freescale\Freescale MQX 3.8\demo\web_hvac\RTCS.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It adds the next lines:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCSPCB_init = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCSPCB_grow = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCSPCB_max = 20;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_msgpool_init = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_msgpool_grow = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_msgpool_max&amp;nbsp; = 20;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_socket_part_init = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_socket_part_grow = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_socket_part_max&amp;nbsp; = 20;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These lines will ensure you to have at least 4 sockets available in the system. Remember that your server will already take one, so you will have 3 remain sockets with this configuration settings. Also remember to close those sockets that already finished the client connection in the server side (your board)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this helps you.&lt;/P&gt;&lt;P&gt;Garabo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Sep 2012 15:59:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191810#M3786</guid>
      <dc:creator>Luis_Garabo</dc:creator>
      <dc:date>2012-09-13T15:59:26Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191811#M3787</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Garabo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That solve the problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Sep 2012 20:14:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191811#M3787</guid>
      <dc:creator>edgarsevilla</dc:creator>
      <dc:date>2012-09-13T20:14:14Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191812#M3788</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the solution!&amp;nbsp; It is important to note when creating a project using CW 10.2 with MQX 3.8 selecting “Add RTCS support” will create rtcs_init.c.&amp;nbsp; This file contains RTCS_create() called by rtcs_init() in main.c. So it is important to have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_socket_part_init = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_socket_part_grow = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RTCS_socket_part_max&amp;nbsp; = 20;&lt;/P&gt;&lt;P&gt;before rtcs_init() in main.c.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Dec 2012 16:55:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191812#M3788</guid>
      <dc:creator>c_dawg</dc:creator>
      <dc:date>2012-12-14T16:55:34Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191813#M3789</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I run into the same problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have another question,when the K60 serves as server,how many clients can be connected ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks all of you !&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Have a nice day.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2015 08:09:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191813#M3789</guid>
      <dc:creator>tongjianwu</dc:creator>
      <dc:date>2015-04-21T08:09:24Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191814#M3790</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/Garabo"&gt;Garabo&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hi,Garabo!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Need help!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; My platform info:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCU:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MK60DN512VLQ10&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MQX Version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.1.1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Server:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; created by MK60DN512VLQ10&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Client:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; When I use the parameters below,I create one client on my PC then close and open it up to six times,after this I can't connect to the server again.&lt;/P&gt;&lt;TABLE jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;NaN&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;transparent&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;,&amp;quot;verticalAlign&amp;quot;:&amp;quot;baseline&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;// runtime RTCS configuration for devices with small RAM, for others the default BSP setting is used&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;// original parameter&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCSPCB_init = 10;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCSPCB_grow = 2;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCSPCB_max = 20;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_msgpool_init =10;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_msgpool_grow = 2;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_msgpool_max&amp;nbsp; = 20;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_socket_part_init = 10;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_socket_part_grow = 2;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_socket_part_max&amp;nbsp; = 20;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;the attachment is debug error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2015 12:22:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191814#M3790</guid>
      <dc:creator>tongjianwu</dc:creator>
      <dc:date>2015-04-21T12:22:20Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191815#M3791</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jianwu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are you making sure that the sockets opened in the server side are being closed and released after the closure of each client? If you don't do this you are starving from memory in the server. Then you are not able to create more sockets. Remember, the limit is the memory. If you don't have more memory to continue creating sockets then you will hang starving for memory.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Garabo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2015 13:47:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191815#M3791</guid>
      <dc:creator>Luis_Garabo</dc:creator>
      <dc:date>2015-04-21T13:47:29Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191816#M3792</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Garabo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks for your reply!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When the client close the connection, I use the following methods to close the client sockets:&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2015 14:15:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191816#M3792</guid>
      <dc:creator>tongjianwu</dc:creator>
      <dc:date>2015-04-21T14:15:19Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191817#M3793</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your replay is cut. I can't see anything.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Garabo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2015 14:16:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191817#M3793</guid>
      <dc:creator>Luis_Garabo</dc:creator>
      <dc:date>2015-04-21T14:16:31Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191818#M3794</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Garabo.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sorry for that!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 13.3333330154419px;"&gt; When the client close the connection, I use the following methods to close the client sockets:&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid #000000; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="color: #575757;"&gt;Header 1&lt;/SPAN&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;&lt;P&gt;if (error == RTCSERR_TCP_CONN_CLOSING)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;shutdown(new_socket_handle, FLAG_ABORT_CONNECTION);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp; &lt;SPAN style="color: #000000;"&gt;debug_log("\n[TCPServer]: TCPClient Closed (Socket = 0x%x).", new_socket_handle);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp; _task_destroy(MQX_NULL_TASK_ID);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp; break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Close TCPServer if TCPClient abort.&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if (error == RTCSERR_TCP_CONN_RESET)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; shutdown(new_socket_handle, FLAG_ABORT_CONNECTION);&lt;/P&gt;&lt;P&gt;&amp;nbsp; debug_log("\n[TCPServer]: Connection reset by peer.");&lt;/P&gt;&lt;P&gt;&amp;nbsp; debug_log("\n[TCPServer]: TCPClient Closed (Socket = 0x%x).", new_socket_handle);&lt;/P&gt;&lt;P&gt;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Timeout occur if zero char received.&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if (error == RTCSERR_TCP_TIMED_OUT)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; debug_log("\n[TCPServer]: recv Timeout.");&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (send(new_socket_handle, "TCPServer recv Timeout.", strlen("TCPServer recv Timeout.") + 1, 0) == RTCS_ERROR)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; debug_log("\n[TCPServer]: Failed to send, CODE = 0x%x.", RTCS_geterror(new_socket_handle));&lt;/P&gt;&lt;P&gt;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; debug_log("\n[TCPServer]: Failed to recv, CODE = 0x%x.", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I create one task for each socket connected to the server&amp;nbsp; and the task stack size is 1000bytes,doubt that whether I can use this approach to process each socket.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I don't know whether I can use the above method close the client sockets.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Can you give me some advice for processing these?&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2015 14:25:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191818#M3794</guid>
      <dc:creator>tongjianwu</dc:creator>
      <dc:date>2015-04-21T14:25:14Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191819#M3795</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are closing correctly in your side. Take a look to the Task Aware Debugging in the TCPIP-&amp;gt;Sockets menu and see how many sockets you still in pending to be closed. It is wired that you are not releasing the resources.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Garabo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2015 18:36:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191819#M3795</guid>
      <dc:creator>Luis_Garabo</dc:creator>
      <dc:date>2015-04-21T18:36:13Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191820#M3796</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;P&gt;hi,Garabo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply!&lt;/P&gt;&lt;P&gt;I create one task for each socket connected to the server&amp;nbsp; and the task stack size is 1000bytes,doubt that whether I can use this approach to process each socket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the client socket closes the connection,what should i do for the task?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards.&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Apr 2015 00:00:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191820#M3796</guid>
      <dc:creator>tongjianwu</dc:creator>
      <dc:date>2015-04-22T00:00:04Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191821#M3797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Juanwu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Make sure that each task is killed after the socket is shutdown. If they stay in blocked state then you are not releasing that memory and you will get out of it very soon. use _task_abort() instead of _task_block().&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Garabo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Apr 2015 13:18:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191821#M3797</guid>
      <dc:creator>Luis_Garabo</dc:creator>
      <dc:date>2015-04-22T13:18:47Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191822#M3798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,Garabo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks for your quick reply!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; May I use the _task_destroy() function to terminate the socket task?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error == RTCSERR_TCP_CONN_CLOSING)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;shutdown(new_socket_handle, FLAG_ABORT_CONNECTION);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #000000;"&gt;debug_log("\n[TCPServer]: TCPClient Closed (Socket = 0x%x).", new_socket_handle);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_destroy(MQX_NULL_TASK_ID);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Close TCPServer if TCPClient abort.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When creating one socket for client, how many stack will be consumed?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Finally I find the socket TX and RX buffer are the default value (4380 bytes),then rectify these value to (1024 byets). Using the following RTCS parameter,10 client sockets can connect to my server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCSPCB_init = 10;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCSPCB_grow = 2;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCSPCB_max = 20;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_msgpool_init = 10;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_msgpool_grow = 2;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_msgpool_max&amp;nbsp; = 20;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_socket_part_init = 10;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_socket_part_grow = 2;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_RTCS_socket_part_max&amp;nbsp; = 20;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;if I change the tx and rx buffer size whether any negtive effects can happen?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Another question,when receiving the data from the client socket,I use one lwsem to notify the command parse function to process the data.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Then connect some sockets to the TCP server and after this, connect one another socket,at this time I can't use the lwsem to notify the command parse&amp;nbsp;&amp;nbsp; function,but when I use lwevent ,this situation doesn't happen. I don't know what happen,can you give me some advice?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jianwu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Apr 2015 16:21:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191822#M3798</guid>
      <dc:creator>tongjianwu</dc:creator>
      <dc:date>2015-04-22T16:21:08Z</dc:date>
    </item>
    <item>
      <title>Re: Can´t maintain two sockets connected at time</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191823#M3799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jianwu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, you need to destroy the task since it won't be used any more for the closed socket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only stack consumed is the used by the task created to handle that connection.&lt;/P&gt;&lt;P&gt;With the TaskAwareDebugging, you can see that every new TCP socket connection needs extra 500+4392x2+148=9432B/59.0KB=16% as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MQX -&amp;gt; Lightweight Memory Block Summary Size (Decimal) Owner&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&lt;/P&gt;&lt;P&gt;500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Control Block;RTCS/TCP&lt;/P&gt;&lt;P&gt;4392&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Tx Window;RTCS/TCP&lt;/P&gt;&lt;P&gt;4392&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Rx Window;RTCS/TCP&lt;/P&gt;&lt;P&gt;148&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Send Clock;RTCS/TCP&lt;/P&gt;&lt;P&gt;(TCP/IP Task id is 0x10001)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The default OPT_TBSIZE and OPT_RBSIZE are 4380 bytes. If you call setsockopt() to reduce these two, for example, to a quarter like 1095 bytes, the memory usage to open a new TCP socket will drop from 16% to 4.7% as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MQX -&amp;gt; Lightweight Memory Block Summary Size (Decimal) Owner&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&lt;/P&gt;&lt;P&gt;500&amp;nbsp; -&amp;gt;&amp;nbsp; 500&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Control Block;RTCS/TCP&lt;/P&gt;&lt;P&gt;4392 -&amp;gt; 1108&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Tx Window;RTCS/TCP&lt;/P&gt;&lt;P&gt;4392 -&amp;gt; 1108&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Rx Window;RTCS/TCP&lt;/P&gt;&lt;P&gt;148&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp; 84&amp;nbsp;&amp;nbsp; 0x10001&amp;nbsp; TCP Send Clock;RTCS/TCP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the problems persists please set a slower number, try next: &lt;/P&gt;&lt;P&gt;uint_32 value;&lt;/P&gt;&lt;P&gt;… &lt;/P&gt;&lt;P&gt;value = 256; &lt;/P&gt;&lt;P&gt;setsockopt(sock, SOL_TCP,OPT_TBSIZE,&amp;amp;value,sizeof(value)); &lt;/P&gt;&lt;P&gt;setsockopt(sock, SOL_TCP,OPT_RBSIZE,&amp;amp;value,sizeof(value)); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this to see if you can get more resources.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am sorry but I did not catch your last question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regardsm&lt;/P&gt;&lt;P&gt;Garabo.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Apr 2015 21:07:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-t-maintain-two-sockets-connected-at-time/m-p/191823#M3799</guid>
      <dc:creator>Luis_Garabo</dc:creator>
      <dc:date>2015-04-23T21:07:16Z</dc:date>
    </item>
  </channel>
</rss>

