<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to CODESYS RPI SOCKET COMMUNICATION</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/ce926d14f8/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Runtime/thread/ce926d14f8/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Runtime/thread/ce926d14f8/</id><updated>2020-02-27T17:02:12.361000Z</updated><subtitle>Recent posts to CODESYS RPI SOCKET COMMUNICATION</subtitle><entry><title>CODESYS RPI SOCKET COMMUNICATION</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/ce926d14f8/?limit=25#6869" rel="alternate"/><published>2020-02-27T17:02:12.361000Z</published><updated>2020-02-27T17:02:12.361000Z</updated><author><name>Damian7546</name><uri>https://forge.codesys.com/u/damian7546/</uri></author><id>https://forge.codesys.com12ce76fe4e27367abad4e2b735c2f6dc2bf19b89</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I wrote in CODESYS socket communication like this:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;run&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
&lt;span class="nv"&gt;sa&lt;/span&gt;.&lt;span class="nv"&gt;sin_family&lt;/span&gt;       :&lt;span class="o"&gt;=&lt;/span&gt;   &lt;span class="nv"&gt;SOCKET_AF_INET&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;sa&lt;/span&gt;.&lt;span class="nv"&gt;sin_port&lt;/span&gt;         :&lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="nv"&gt;SysSockHtons&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;result&lt;/span&gt;            :&lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="nv"&gt;SysSockInetAddr&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;strIpAddres&lt;/span&gt;, &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sa&lt;/span&gt;.&lt;span class="nv"&gt;sin_addr&lt;/span&gt;.&lt;span class="nv"&gt;ulAddr&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;; //convert Ip STRING  to IP adres&lt;/span&gt;
&lt;span class="nv"&gt;hSocket&lt;/span&gt;          :&lt;span class="o"&gt;=&lt;/span&gt;   &lt;span class="nv"&gt;SysSockCreate&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;SOCKET_AF_INET&lt;/span&gt;, &lt;span class="nv"&gt;SOCKET_STREAM&lt;/span&gt;, &lt;span class="nv"&gt;SOCKET_IPPROTO_TCP&lt;/span&gt;, &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;result&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;  //tworzy nowe gniazdo&lt;/span&gt;
&lt;span class="nb"&gt;result&lt;/span&gt;            :&lt;span class="o"&gt;=&lt;/span&gt;   &lt;span class="nv"&gt;SysSockCOnnect&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hSocket&lt;/span&gt;, &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sa&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;, &lt;span class="nv"&gt;SIZEOF&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sa&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;numberOfSendBytes&lt;/span&gt;   :&lt;span class="o"&gt;=&lt;/span&gt;   &lt;span class="nv"&gt;SysSockSend&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hSocket&lt;/span&gt;, &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;str&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,  &lt;span class="mi"&gt;30&lt;/span&gt; ,&lt;span class="mi"&gt;0&lt;/span&gt;, &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;result&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;numberOfBytes&lt;/span&gt;      :&lt;span class="o"&gt;=&lt;/span&gt;   &lt;span class="nv"&gt;SysSockRecv&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hSocket&lt;/span&gt;, &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;str2&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;, &lt;span class="mi"&gt;100&lt;/span&gt;,&lt;span class="mi"&gt;0&lt;/span&gt;,&lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;result&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;SysSockClose&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hSocket&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;run&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;recivedX&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysSockSelect&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;,&lt;span class="nv"&gt;NULL&lt;/span&gt;,&lt;span class="nv"&gt;NULL&lt;/span&gt;,&lt;span class="nv"&gt;NULL&lt;/span&gt;,&lt;span class="nv"&gt;NULL&lt;/span&gt;,&lt;span class="nv"&gt;NULL&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="k"&gt;IF&lt;/span&gt;  &lt;span class="nv"&gt;recivedX&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;  &lt;span class="k"&gt;THEN&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;numberOfBytes&lt;/span&gt;      :&lt;span class="o"&gt;=&lt;/span&gt;   &lt;span class="nv"&gt;SysSockRecv&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hSocket&lt;/span&gt;, &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;str2&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;, &lt;span class="mi"&gt;100&lt;/span&gt;,&lt;span class="mi"&gt;0&lt;/span&gt;,&lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;result&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;With sending data everything is ok, but I have problem with receive data.&lt;br/&gt;
It is a bad idea is all time use SysSockRecv function. I read that I must use  SysSockSelect function.&lt;br/&gt;
I do not now how use it. Can you give me a hint how solve my problem ?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>