<?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: Socket not receiving data after shutdown and creation in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186258#M3242</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Syed,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you tested by adding the FLAG_ABORT_CONNECTION flag?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The value for it is:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P align="left"&gt;#define&lt;SPAN style="font-size: 10pt;"&gt; FLAG_ABORT_CONNECTION (0x0010)&lt;/SPAN&gt;&lt;STRONG&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do it in this code and it works all the time:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; while(TRUE)&lt;/P&gt;&lt;P&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; sock = socket(AF_INET, SOCK_DGRAM, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (sock == RTCS_SOCKET_ERROR)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nError, socket create failed");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; memset((char *) &amp;amp;local_sin, 0, sizeof(local_sin));&lt;/P&gt;&lt;P&gt;&amp;nbsp; local_sin.sin_family = AF_INET;&lt;/P&gt;&lt;P&gt;&amp;nbsp; local_sin.sin_port = SERVER_BROADCAST_PORT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; local_sin.sin_addr.s_addr = INADDR_ANY;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; result = bind(sock, &amp;amp;local_sin, sizeof (sockaddr_in));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (result != RTCS_OK)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nError, bind() failed with error code %lx", result);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; memset((char *) &amp;amp;remote_sin, 0, sizeof(sockaddr_in));&lt;/P&gt;&lt;P&gt;&amp;nbsp; remote_sin.sin_family = AF_INET;&lt;/P&gt;&lt;P&gt;&amp;nbsp; remote_sin.sin_port = SERVER_BROADCAST_PORT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; remote_sin.sin_addr.s_addr = INADDR_BROADCAST;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; ipcfg_get_ip(BSP_DEFAULT_ENET_DEVICE, &amp;amp;MyIP_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp; //printf("\nIP Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(MyIP_data.ip));&lt;/P&gt;&lt;P&gt;&amp;nbsp; snprintf(myBuffer, 50, "ServerForAndroid %x\n", (uint_32)MyIP_data.ip);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%s",myBuffer);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //count = sendto(sock, my_buffer, 11, 0, &amp;amp;remote_sin, sizeof(sockaddr_in));&lt;/P&gt;&lt;P&gt;&amp;nbsp; count = sendto(sock, myBuffer, sizeof (myBuffer), 0, &amp;amp;remote_sin, sizeof(sockaddr_in));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (count == RTCS_ERROR)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nsendto() failed with error %lx\n", RTCS_geterror(sock));&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;&amp;nbsp; printf("\nSent %ld bytes of data.", count);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; shutdown(sock, FLAG_ABORT_CONNECTION);&lt;/P&gt;&lt;P&gt;&amp;nbsp; _time_delay(1000);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;I hope this helps you.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;-Garabo&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Sep 2012 22:21:46 GMT</pubDate>
    <dc:creator>Luis_Garabo</dc:creator>
    <dc:date>2012-09-13T22:21:46Z</dc:date>
    <item>
      <title>Socket not receiving data after shutdown and creation</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186256#M3240</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&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; I am using MQX 3.8 and TWRK60N512. I am receiving data from multicast address and it works fine. The issues is once I shutdown a socket and open it again, I am not able to receive any data. Below is the code I&amp;nbsp; have used for shutting down and reopening the socket. Is there anything else required after shutting down the socket ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt; /*  ** Send an DROP MEMBERSHIP message via setsockopt  */ errcode = setsockopt(rx_sock, SOL_IGMP, RTCS_SO_IGMP_DROP_MEMBERSHIP, &amp;amp;mc_req, sizeof(mc_req));  if (errcode != RTCS_OK) {  printf("error");  _task_block(); }  /*  ** Shutdown the existing socket  */ errcode = shutdown(rx_sock, 0); if (errcode != RTCS_OK) {  printf("error");     _task_block(); }  /*  ** Create socket to join multicast group on  */ rx_sock = socket(PF_INET, SOCK_DGRAM, 0);  if (rx_sock == RTCS_SOCKET_ERROR) {  printf("error");     _task_block(); }  /*  ** Construct a multicast address structure  */ memset(&amp;amp;rx_addr, 0, sizeof(rx_addr)); rx_addr.sin_family      = AF_INET; rx_addr.sin_addr.s_addr = INADDR_ANY; rx_addr.sin_port        = port;   /*  ** Bind to multicast address to socket  */ errcode = bind(rx_sock, &amp;amp;rx_addr, sizeof(rx_addr)); if (errcode != RTCS_OK) {  printf("error");     _task_block(); }  /*  ** Construct an IGMP join request structure  */ mc_req.imr_multiaddr.s_addr = multicast_address; mc_req.imr_interface.s_addr = ip_address;  /*  ** Send an ADD MEMBERSHIP message via setsockopt  */ errcode = setsockopt(rx_sock, SOL_IGMP, RTCS_SO_IGMP_ADD_MEMBERSHIP, &amp;amp;mc_req, sizeof(mc_req));   if (errcode != RTCS_OK) {  printf("error");     _task_block(); }&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Mohsin455&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:37:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186256#M3240</guid>
      <dc:creator>Mohsin455</dc:creator>
      <dc:date>2020-10-29T09:37:08Z</dc:date>
    </item>
    <item>
      <title>Re: Socket not receiving data after shutdown and creation</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186257#M3241</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&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; Can anyone please confirm if the procedure for closing and reopening the socket is correct ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Mohsin455&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Aug 2012 08:24:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186257#M3241</guid>
      <dc:creator>Mohsin455</dc:creator>
      <dc:date>2012-08-19T08:24:01Z</dc:date>
    </item>
    <item>
      <title>Re: Socket not receiving data after shutdown and creation</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186258#M3242</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Syed,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you tested by adding the FLAG_ABORT_CONNECTION flag?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The value for it is:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P align="left"&gt;#define&lt;SPAN style="font-size: 10pt;"&gt; FLAG_ABORT_CONNECTION (0x0010)&lt;/SPAN&gt;&lt;STRONG&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do it in this code and it works all the time:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; while(TRUE)&lt;/P&gt;&lt;P&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; sock = socket(AF_INET, SOCK_DGRAM, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (sock == RTCS_SOCKET_ERROR)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nError, socket create failed");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; memset((char *) &amp;amp;local_sin, 0, sizeof(local_sin));&lt;/P&gt;&lt;P&gt;&amp;nbsp; local_sin.sin_family = AF_INET;&lt;/P&gt;&lt;P&gt;&amp;nbsp; local_sin.sin_port = SERVER_BROADCAST_PORT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; local_sin.sin_addr.s_addr = INADDR_ANY;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; result = bind(sock, &amp;amp;local_sin, sizeof (sockaddr_in));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (result != RTCS_OK)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nError, bind() failed with error code %lx", result);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; memset((char *) &amp;amp;remote_sin, 0, sizeof(sockaddr_in));&lt;/P&gt;&lt;P&gt;&amp;nbsp; remote_sin.sin_family = AF_INET;&lt;/P&gt;&lt;P&gt;&amp;nbsp; remote_sin.sin_port = SERVER_BROADCAST_PORT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; remote_sin.sin_addr.s_addr = INADDR_BROADCAST;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; ipcfg_get_ip(BSP_DEFAULT_ENET_DEVICE, &amp;amp;MyIP_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp; //printf("\nIP Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(MyIP_data.ip));&lt;/P&gt;&lt;P&gt;&amp;nbsp; snprintf(myBuffer, 50, "ServerForAndroid %x\n", (uint_32)MyIP_data.ip);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%s",myBuffer);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //count = sendto(sock, my_buffer, 11, 0, &amp;amp;remote_sin, sizeof(sockaddr_in));&lt;/P&gt;&lt;P&gt;&amp;nbsp; count = sendto(sock, myBuffer, sizeof (myBuffer), 0, &amp;amp;remote_sin, sizeof(sockaddr_in));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (count == RTCS_ERROR)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nsendto() failed with error %lx\n", RTCS_geterror(sock));&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;&amp;nbsp; printf("\nSent %ld bytes of data.", count);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; shutdown(sock, FLAG_ABORT_CONNECTION);&lt;/P&gt;&lt;P&gt;&amp;nbsp; _time_delay(1000);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;I hope this helps you.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;-Garabo&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Sep 2012 22:21:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186258#M3242</guid>
      <dc:creator>Luis_Garabo</dc:creator>
      <dc:date>2012-09-13T22:21:46Z</dc:date>
    </item>
    <item>
      <title>Re: Socket not receiving data after shutdown and creation</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186259#M3243</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Diag accept() failed, error 0x1704&lt;/P&gt;&lt;P&gt;InitDiagSocket: Created the stream socket 536899428&lt;/P&gt;&lt;P&gt;Failed to bind the diag stream socket - 0x1633&lt;/P&gt;&lt;P&gt;diag listen() failed - 0x1704&lt;/P&gt;&lt;P&gt;I am receiving above error after shutting down socket using shutdown() and creating again the socket.&lt;/P&gt;&lt;P&gt;&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, 22 Nov 2012 07:03:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186259#M3243</guid>
      <dc:creator>netra</dc:creator>
      <dc:date>2012-11-22T07:03:11Z</dc:date>
    </item>
    <item>
      <title>Re: Socket not receiving data after shutdown and creation</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186260#M3244</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 10pt;"&gt;These are the error you are getting:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 10pt;"&gt;TCSERR_SOCK_INVALID (RTCS_ERROR_BASE|0x704)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 10pt;"&gt;RTCSERR_TCP_ADDR_IN_USE (RTCS_ERROR_BASE|0x633)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; color: #000000;"&gt;Perhaps you are getting out of resources. Make sure you are giving enough memory to the RTCS. Try this in oyour code before creating the RTCS stack:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: Helvetica;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;_RTCSTASK_stacksize = 3000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this helps.&lt;/P&gt;&lt;P&gt;-Garabo&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>Mon, 10 Dec 2012 17:03:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Socket-not-receiving-data-after-shutdown-and-creation/m-p/186260#M3244</guid>
      <dc:creator>Luis_Garabo</dc:creator>
      <dc:date>2012-12-10T17:03:13Z</dc:date>
    </item>
  </channel>
</rss>

