<div dir="ltr"><div>I&#39;m like ... 80% sure that there&#39;s no TCP-handling facilities built in, but I may be wrong here. If there is, I surely don&#39;t know about it.</div><div dir="ltr"><br></div><div dir="ltr">Can you tell us a little more about your use case?</div><div dir="ltr"><br></div><div dir="ltr">The design goals of TCP and ChucK are very different with respect to <i>time</i>. ChucK is designed around guarantees about time and timeliness. TCP is not designed around timeliness or latency in general: TCP is designed around guarantees about ordering (messages always appear in order) and delivery (messages are guaranteed to be delivered). Since every byte sent over a TCP socket has to be eventually acknowledged, and all bytes have to be processed in order, a stall in the network (a normal occurrence) could mean later messages being delayed, much like a traffic jam. It&#39;s not possible to have timing <i>guarantees </i>with TCP.<br><div><br></div><div>I&#39;m not sure how to find it in the source code, but maybe someone else here knows: does calling Std.system create a new shell process for each invocation? That would be a fairly inefficient way to go about things. Also since you&#39;re piping to another process, that&#39;s a new netcat process for each invocation (so it&#39;s either one or two processes per invocation), and a new TCP socket for every invocation. TCP is <i>especially slow </i>at <i>the very beginning of communication.</i></div><div><br></div><div>If I were in your shoes, I would probably write a separate program that acts as a server and serves an OSC-based protocol. This server would take your messages as OSC and translate them and then forward them to the intended recipient over just one TCP connection and continue to use that one connection the whole time. It may or may not respond to your ChucK program over OSC, depending on whether you want the ChucK program to get responses to its requests (probably not?).</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Dec 1, 2018 at 1:25 PM mario buoninfante &lt;<a href="mailto:mario.buoninfante@gmail.com">mario.buoninfante@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <p>Hi,</p>
    <p><br>
    </p>
    <p>It seems like accessing the shell and use &quot;netcat&quot; (on Unix) is a
      possible solution. Quite an <i>exotic</i> workaround but better
      than nothing I&#39;d say.</p>
    <p>Something like that seems to work:</p>
    <p><i>// run ChucK with &quot;--caution-to-the-wind&quot;</i><i><br>
      </i><i><br>
      </i><i>&quot;echo -ne &#39;&quot; =&gt; string prefix;</i><i><br>
      </i><i>&quot;&#39; | netcat 127.0.0.1 3333 &quot; =&gt; string suffix;  //
        netcat &lt;target ip&gt; &lt;target port&gt;</i><i><br>
      </i><i><br>
      </i><i>while(true)</i><i><br>
      </i><i>{</i><i><br>
      </i><i>  Math.random2(0,127) =&gt; int r;</i><i><br>
      </i><i>  prefix + Std.itoa(r) + suffix =&gt; string msg;</i><i><br>
      </i><i>  Std.system(msg);</i><i><br>
      </i><i><br>
      </i><i>  second =&gt; now;</i><i><br>
      </i><i>}</i></p>
    <p><i></i><br>
    </p>
    <p>Please, let me know if anyone has a better solution.<br>
    </p>
    <p><br>
    </p>
    <p>Cheers,</p>
    <p>Mario<br>
    </p>
    <div class="m_-3928248464589800815moz-cite-prefix">On 01/12/2018 18:04, mario buoninfante
      wrote:<br>
    </div>
    <blockquote type="cite">Hi,
      <br>
      <br>
      <br>
      I also tried opening a file in /dev/tcp/&lt;target
      ip&gt;/&lt;target port&gt;, but it didn&#39;t work. I&#39;m on Ubuntu
      16.04. Any idea?
      <br>
      <br>
      <br>
      Cheers,
      <br>
      <br>
      Mario
      <br>
      <br>
      <br>
      On 30/11/2018 16:52, Mario Buoninfante wrote:
      <br>
      <blockquote type="cite">Hi,
        <br>
        <br>
        Does anyone know if it&#39;s possible to use TCP instead of UDP in
        ChucK?
        <br>
        <br>
        Cheers,
        <br>
        Mario
        <br>
      </blockquote>
      <br>
    </blockquote>
    <pre class="m_-3928248464589800815moz-signature" cols="72">-- 
Electronic Musician, Creative Coder, QA Engineer
<a class="m_-3928248464589800815moz-txt-link-freetext" href="https://vimeo.com/creativecodingsalerno" target="_blank">https://vimeo.com/creativecodingsalerno</a>
<a class="m_-3928248464589800815moz-txt-link-freetext" href="http://mbuoninfante.tumblr.com/" target="_blank">http://mbuoninfante.tumblr.com/</a>
<a class="m_-3928248464589800815moz-txt-link-freetext" href="https://github.com/mariobuoninfante" target="_blank">https://github.com/mariobuoninfante</a>
<a class="m_-3928248464589800815moz-txt-link-freetext" href="https://bitbucket.org/mariobuoninfante/" target="_blank">https://bitbucket.org/mariobuoninfante/</a></pre>
  </div>

_______________________________________________<br>
chuck-users mailing list<br>
<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
<a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
</blockquote></div>