<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>non - blocking socket nrf9160 HTTP TCP</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/77871/non---blocking-socket-nrf9160-http-tcp</link><description>Hello 
 I am using HTTP to requests on the server with NB-IoT network on NRF9160 chip 
 I found that in the HTTP REQUEST command with 1 REV () function to get the results returned via socket 
 When I encounter weak NB-IOT network conditions, there is</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 29 Jul 2021 13:22:31 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/77871/non---blocking-socket-nrf9160-http-tcp" /><item><title>RE: non - blocking socket nrf9160 HTTP TCP</title><link>https://devzone.nordicsemi.com/thread/322479?ContentTypeID=1</link><pubDate>Thu, 29 Jul 2021 13:22:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d05fda93-4adb-459e-a0ec-a3889ae7cff5</guid><dc:creator>Albrecht Markus Schellenberger</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user="haohv6"]Please check and explain what I wrong.[/quote]
&lt;p&gt;Are you using a TLS socket? In this case, my suspicion is that the response data is too large (&amp;gt;2kB, which is our limit in the modem).&lt;/p&gt;
[quote user="haohv6"]Moreover, I do http request by a work and submit it to my queue, is there anyway to abort ( or cancel, disable, exit, etc....) that work when socket is blocked[/quote]
&lt;p&gt;Theoretically this is not possible. But in practice you can close the socket from another thread, which should make the &lt;em&gt;recv&lt;/em&gt; function to return an error. Another alternative would be to set a timeout on the socket with the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.6.0/zephyr/reference/networking/sockets.html?highlight=setsockopt#c.zsock_setsockopt"&gt;setsockopt&lt;/a&gt; API. If the socket won&amp;#39;t unblock until the timeout expires, it&amp;#39;ll return with an error.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Markus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: non - blocking socket nrf9160 HTTP TCP</title><link>https://devzone.nordicsemi.com/thread/322337?ContentTypeID=1</link><pubDate>Thu, 29 Jul 2021 03:29:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b96b9155-e270-43e3-aeb6-4242cb6c28c3</guid><dc:creator>haohv6</dc:creator><description>&lt;p&gt;Moreover, I do http request by a work and submit it to my queue, is there anyway to abort ( or cancel, disable, exit, etc....) that work when socket is blocked&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: non - blocking socket nrf9160 HTTP TCP</title><link>https://devzone.nordicsemi.com/thread/322336?ContentTypeID=1</link><pubDate>Thu, 29 Jul 2021 03:23:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f1c3796c-fb03-4571-bd91-8403745bf1bd</guid><dc:creator>haohv6</dc:creator><description>&lt;p&gt;Hello,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I found this post&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/49556/enabling-config_posix_api-w-nrf-v1-0-0-causes-linker-error-for-multiple-definitions-of-fcntl"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/49556/enabling-config_posix_api-w-nrf-v1-0-0-causes-linker-error-for-multiple-definitions-of-fcntl&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And I remove nrf API and add Zephyr API, when I send http request, it exit immediately without data.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please check and explain what I wrong.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_request_config&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_payload&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;{&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;struct&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;sockaddr_in&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;server_sockadd_in&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;server_sock&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;-&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;memset&lt;/span&gt;&lt;span&gt;(&amp;amp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;memset&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;http_recv_buf&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;strlen&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;http_recv_buf&lt;/span&gt;&lt;span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;connect_socket&lt;/span&gt;&lt;span&gt;(AF_INET,&amp;nbsp;&lt;/span&gt;&lt;span&gt;IOT_SERVER_IP&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;IOT_SERVER_HTTP_PORT&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&lt;/span&gt;&lt;span&gt;server_sock&lt;/span&gt;&lt;span&gt;,&amp;nbsp;(&lt;/span&gt;&lt;span&gt;struct&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;sockaddr&lt;/span&gt;&lt;span&gt;&amp;nbsp;*)&amp;nbsp;&amp;amp;&lt;/span&gt;&lt;span&gt;server_sockadd_in&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;server_sockadd_in&lt;/span&gt;&lt;span&gt;),&amp;nbsp;&lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;gt;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;flags&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;fcntl&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;server_sock&lt;/span&gt;&lt;span&gt;,&amp;nbsp;F_GETFL,&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;LOG_DBG&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;nrf_fcntl&amp;nbsp;verified&amp;nbsp;value&amp;nbsp;set&amp;nbsp;to&amp;nbsp;&lt;/span&gt;&lt;span&gt;%d&lt;/span&gt;&lt;span&gt;\n&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;flags&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;fcntl&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;server_sock&lt;/span&gt;&lt;span&gt;,&amp;nbsp;F_SETFL,&amp;nbsp;&lt;/span&gt;&lt;span&gt;flags&lt;/span&gt;&lt;span&gt;&amp;nbsp;|&amp;nbsp;O_NONBLOCK);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;rflags&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;fcntl&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;server_sock&lt;/span&gt;&lt;span&gt;,&amp;nbsp;F_GETFL,&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;LOG_DBG&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;nrf_fcntl&amp;nbsp;verified&amp;nbsp;value&amp;nbsp;set&amp;nbsp;to&amp;nbsp;&lt;/span&gt;&lt;span&gt;%d&lt;/span&gt;&lt;span&gt;\n&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;flags&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;method&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;HTTP_POST;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;protocol&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;quot;HTTP/1.1&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;host&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;IOT_SERVER_IP&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;payload&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_payload&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;payload_len&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;strlen&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;http_payload&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;header_fields&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;headers&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;response_cb&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;recv_buf&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_recv_buf&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;recv_buf_len&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;http_recv_buf&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;LOG_DBG&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;Begin&amp;nbsp;http&amp;nbsp;request&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;http_client_req&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;server_sock&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&amp;amp;&lt;/span&gt;&lt;span&gt;http_req&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;7&lt;/span&gt;&lt;span&gt;&amp;nbsp;*&amp;nbsp;MSEC_PER_SEC,&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;quot;IPv4&amp;nbsp;POST&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&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;&lt;/span&gt;&lt;span&gt;LOG_ERR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;Fail&amp;nbsp;to&amp;nbsp;request&amp;nbsp;to&amp;nbsp;server!&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;LOG_DBG&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;Exit&amp;nbsp;http&amp;nbsp;request&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;close&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;server_sock&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt;&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;LOG_DBG&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;Network&amp;nbsp;err&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;close&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;server_sock&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;-&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;/*This is console LOG*/&lt;/p&gt;
&lt;p&gt;[00:05:28.680,938] &amp;lt;dbg&amp;gt; tracker_op_mode.tracker_start: ------------------&lt;br /&gt;[00:05:28.688,232] &amp;lt;dbg&amp;gt; tracker_op_mode.tracker_start: --!!!!!!!!!!!!!!!!!!!!!!!!!!!!----------------&lt;br /&gt;[00:05:28.698,303] &amp;lt;dbg&amp;gt; http_common.setup_socket: creat sock = 1&lt;br /&gt;[00:05:28.704,833] &amp;lt;dbg&amp;gt; http_common.connect_socket: Pass setup socket&lt;br /&gt;[00:05:29.241,485] &amp;lt;dbg&amp;gt; http_common.connect_socket: Pass connect&lt;br /&gt;[00:05:29.248,016] &amp;lt;dbg&amp;gt; http_common.connect_socket: Pass ret&lt;br /&gt;[00:05:29.254,211] &amp;lt;dbg&amp;gt; http_requests.http_request_config: &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; nrf_fcntl verified value set to 0&lt;/p&gt;
&lt;p&gt;[00:05:29.263,977] &amp;lt;dbg&amp;gt; http_requests.http_request_config: &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; nrf_fcntl verified value set to 0&lt;/p&gt;
&lt;p&gt;[00:05:29.273,773] &amp;lt;dbg&amp;gt; http_requests.http_request_config: Begin http request&lt;br /&gt;[00:05:29.281,463] &amp;lt;dbg&amp;gt; net_http.Data to send&lt;br /&gt;50 4f 53 54 20 2f 54 68 69 6e 67 77 6f 72 78 2f |POST /Th ingworx/&lt;br /&gt;54 68 69 6e 67 73 2f 62 32 65 36 64 31 35 33 2d |Things/b 2e6d153-&lt;br /&gt;37 61 64 36 2d 34 34 37 65 2d 38 63 64 39 2d 62 |7ad6-447 e-8cd9-b&lt;br /&gt;30 34 62 37 63 38 31 38 66 38 38 2f 53 65 72 76 |04b7c818 f88/Serv&lt;br /&gt;69 63 65 73 2f 43 6f 6e 66 69 67 3f 61 70 70 4b |ices/Con fig?appK&lt;br /&gt;65 79 3d 35 34 30 33 62 65 39 37 2d 35 36 36 65 |ey=5403b e97-566e&lt;br /&gt;2d 34 66 39 38 2d 62 36 65 32 2d 65 66 32 30 35 |-4f98-b6 e2-ef205&lt;br /&gt;37 33 34 33 32 64 66 26 41 63 63 65 70 74 3d 61 |73432df&amp;amp; Accept=a&lt;br /&gt;70 70 6c 69 63 61 74 69 6f 6e 25 32 46 6a 73 6f |pplicati on%2Fjso&lt;br /&gt;6e 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 |n HTTP/1 .1..Host&lt;br /&gt;3a 20 31 37 31 2e 32 34 34 2e 31 33 33 2e 32 32 |: 171.24 4.133.22&lt;br /&gt;36 0d 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a |6..Conte nt-Type:&lt;br /&gt;[00:05:29.359,741] &amp;lt;dbg&amp;gt; net_http.Data to send&lt;br /&gt;20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f | applica tion/jso&lt;br /&gt;6e 0d 0a 0d 0a |n....&lt;br /&gt;[00:05:29.377,014] &amp;lt;dbg&amp;gt; net_http.http_client_req: (workqueue): Sent 375 bytes&lt;br /&gt;[00:05:29.384,674] &amp;lt;dbg&amp;gt; net_http.http_client_req: (workqueue): Pass http client init&lt;br /&gt;[00:05:29.392,913] &amp;lt;dbg&amp;gt; net_http.http_client_req: (workqueue): Pass k timeout EQ&lt;br /&gt;[00:05:29.400,787] &amp;lt;dbg&amp;gt; net_http.http_wait_data: http_wait_data running&lt;br /&gt;[00:05:29.407,897] &amp;lt;dbg&amp;gt; net_http.http_wait_data: Pass recv&lt;br /&gt;[00:05:29.413,909] &amp;lt;dbg&amp;gt; net_http.http_wait_data: Connection error (11)&lt;br /&gt;[00:05:29.420,959] &amp;lt;dbg&amp;gt; net_http.http_client_req: (workqueue): Wait data failure (-11)&lt;br /&gt;[00:05:29.429,351] &amp;lt;dbg&amp;gt; http_requests.http_request_config: Exit http request&lt;br /&gt;[00:05:29.436,920] &amp;lt;dbg&amp;gt; net_sock.z_impl_zsock_close: (workqueue): close: ctx=0x00000003, fd=1&lt;br /&gt;[00:05:30.804,138] &amp;lt;dbg&amp;gt; at_cmd.socket_thread_fn: at_cmd_rx 19 bytes, %CESQ: 41,2,10,1&lt;/p&gt;
&lt;p&gt;%CESQ: 41,2,10,1&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;--&amp;gt;When it go into http_wait_data. it return connection error immediately&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: non - blocking socket nrf9160 HTTP TCP</title><link>https://devzone.nordicsemi.com/thread/321743?ContentTypeID=1</link><pubDate>Mon, 26 Jul 2021 09:16:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9c0f3527-7152-405d-acd7-e02fa4198e20</guid><dc:creator>Albrecht Markus Schellenberger</dc:creator><description>&lt;p lang="en-GB"&gt;Hello,&lt;/p&gt;
&lt;p lang="en-GB"&gt;when using Zephyr sockets, you should not mix them with the nRF modem library API in your application. Please use the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.6.0/zephyr/reference/networking/sockets.html?highlight=fcntl#c.zsock_fcntl"&gt;corresponding&lt;/a&gt; Zephyr API instead.&lt;/p&gt;
&lt;p lang="en-GB"&gt;However, as &lt;a href="https://github.com/zephyrproject-rtos/zephyr/blob/main/samples/net/sockets/http_client/src/main.c"&gt;shown&lt;/a&gt; in the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.6.0/zephyr/samples/net/sockets/http_client/README.html#socket-http-client"&gt;Socket HTTP Client&lt;/a&gt;&amp;nbsp;sample, the Zephyr HTTP library only fits to work with blocking sockets, so I do not recommend you switching to non-blocking mode anyway.&lt;/p&gt;
&lt;p lang="en-GB"&gt;&lt;a href="https://github.com/zephyrproject-rtos/zephyr/blob/main/samples/net/sockets/http_client/src/main.c"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p lang="en-GB"&gt;Regards,&lt;/p&gt;
&lt;p lang="en-GB"&gt;Markus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>