<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Hi Marcel,<br>
<br>
to my best knowledge the first 32K of 64K possible ports are
occupied.
<a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers">https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers</a><br>
So if you randomly choose one of them, you might get conflicts with
a service running on your computer on that port.<br>
<br>
I always use port numbers at the upper end of the range. <br>
<br>
Looking at the above page port 1234 is assigned by IANA to the
infoseek search agent and unofficially used by the VNC client. <br>
<br>
Cheers,<br>
<br>
Herbert<br>
<br>
<div class="moz-cite-prefix">Am 15.10.2021 um 14:19 schrieb Marcel
Taeumel:<br>
</div>
<blockquote type="cite"
cite="mid:Mailbird-b8ab2257-cb92-475c-9c80-92e3fa631d34@hpi.de">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div id="__MailbirdStyleContent" style="font-size:
10pt;font-family: Arial;color: #000000;text-align: left"
dir="ltr"> Hi Timothy --
<div><br>
</div>
<div>Sockets work something like this (even though network name
resolving seems to be tricky on my Windows machine at the
moment):</div>
<div><br>
</div>
<div>
<div><span style="font-size: 13.3333px">| hostName port
serverSocket serverProcess clientSocket |</span></div>
<div><span style="font-size: 13.3333px"><br>
</span></div>
<div><span style="font-size: 13.3333px">hostName :=
NetNameResolver localHostName.</span></div>
<div><span style="font-size: 13.3333px">port := 1234.</span></div>
<div><span style="font-size: 13.3333px">data := 'Hello
World!'.</span></div>
<div><span style="font-size: 13.3333px"><br>
</span></div>
<div><span style="font-size: 13.3333px">serverSocket := Socket
newTCP.</span></div>
<div><span style="font-size: 13.3333px">serverSocket listenOn:
port.</span></div>
<div><span style="font-size: 13.3333px"><br>
</span></div>
<div><span style="font-size: 13.3333px">serverProcess := [</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"> </span>|
receivedData |</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"> </span>serverSocket
waitForConnectionFor: 10 "seconds".</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"> </span>Transcript
showln: 'Server accepted client connection'.<span style="white-space:pre"> </span></span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"> </span>receivedData
:= serverSocket receiveData.</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"> </span>Transcript
showln: 'Data received: ', receivedData.</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"> </span>serverSocket
closeAndDestroy.</span></div>
<div><span style="font-size: 13.3333px">] newProcess.</span></div>
<div><span style="font-size: 13.3333px">serverProcess
priority: Processor userBackgroundPriority.</span></div>
<div><span style="font-size: 13.3333px">serverProcess resume.
"or use #forkAt: directly on block"</span></div>
<div><span style="font-size: 13.3333px"><br>
</span></div>
<div><span style="font-size: 13.3333px">clientSocket := Socket
newTCP.</span></div>
<div><span style="font-size: 13.3333px">clientSocket</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"> </span>connectTo:
(NetNameResolver addressFromString: hostName)</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"> </span>port:
port.</span></div>
<div><span style="font-size: 13.3333px">Transcript showln:
'Client connected to server'.</span></div>
<div><span style="font-size: 13.3333px"><br>
</span></div>
<div><span style="font-size: 13.3333px">Transcript showln:
'Data sent: ', (clientSocket sendData: data), ' bytes'.</span></div>
<div><span style="font-size: 13.3333px">clientSocket
closeAndDestroy.</span></div>
</div>
<div><span style="font-size: 13.3333px"><br>
</span></div>
<div><span style="font-size: 13.3333px">Best,</span></div>
<div><span style="font-size: 13.3333px">Marcel</span></div>
<blockquote class="history_container" type="cite"
style="border-left-style: solid;border-width: 1px;margin-top:
20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 15.10.2021
13:34:07 schrieb gettimothy <a class="moz-txt-link-rfc2396E" href="mailto:gettimothy@zoho.com"><gettimothy@zoho.com></a>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">
<div style="font-family: Verdana, Arial, Helvetica,
sans-serif;font-size: 10pt">
<div><br>
</div>
<div>Marcel,<br>
</div>
<div><br>
</div>
<div>Thank you.<br>
</div>
<div><br>
</div>
<div>I have not found any information on sockets in SBE or
PBE. I will continue too look.<br>
</div>
<div><br>
</div>
<div>In my exploring, I thought JSON looked
promising..pharo as a json server thingy that perhaps
squeak could consume.<br>
</div>
<div>IIRC Stomp, which I have used previously on squeak
has two side too, but I am not sure on this.<br>
</div>
<div><br>
</div>
<div>cheers,<br>
</div>
<div><br>
</div>
<div>t</div>
<div><br>
</div>
<div class="zmail_extra_hr" style="border-top: 1px solid
rgb(204, 204, 204); height: 0px; margin-top: 10px;
margin-bottom: 10px; line-height: 0px;"><br>
</div>
<div class="zmail_extra" data-zbluepencil-ignore="true"><br>
<div id="Zm-_Id_-Sgn1">---- On Fri, 15 Oct 2021 04:16:35
-0400 <b>Marcel Taeumel <a class="moz-txt-link-rfc2396E" href="mailto:marcel.taeumel@hpi.de"><marcel.taeumel@hpi.de></a></b>
wrote ----<br>
</div>
<br>
<blockquote style="margin: 0px;min-width: 500px">
<div>
<div id="x_-27494605__MailbirdStyleContent"
style="font-size: 10pt;font-family: Arial;color:
#000000;text-align: left" dir="ltr">Hi Timothy --
<div class="x_-27494605mb_sig"><br>
</div>
<div><br>
</div>
<div>If it is just a text stream, use sockets. If
it is a data/byte stream ... well ... I am not
sure whether the byte interpretation for
structured objects is still compatible between
Pharo and Squeak.<br>
</div>
<div><br>
</div>
<div>Maybe you could also use a file and two file
streams, a writer in Pharo and a reader in
Squeak, as intermediary ...<br>
</div>
<div><br>
</div>
<div>Best,<br>
</div>
<div>Marcel<br>
</div>
<blockquote class="x_-27494605history_container"
style="border-left-style: solid;border-width:
1px;margin-top: 20px;margin-left:
0px;padding-left: 10px;min-width: 500px">
<p style="margin-top: 10px;"><span
class="colour" style="color: rgb(170, 170,
170); margin-top: 10px;">Am 14.10.2021
15:24:23 schrieb gettimothy via Squeak-dev
<<a
href="mailto:squeak-dev@lists.squeakfoundation.org"
target="_blank" moz-do-not-send="true">squeak-dev@lists.squeakfoundation.org</a>>:</span><br>
</p>
<div style="font-family : Arial, Helvetica,
sans-serif;">
<div style="font-family: Verdana, Arial,
Helvetica, sans-serif;font-size: 10pt">
<div>Hi Folks,<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>I have used ApacheMQ(?) and Stomp in
squeak to communicate between squeak and a
C++ application, it worked well, but I
would like to avoid this for my project.<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>What I (will) have is a pharo image
that will parse a large XML document for
me (squeak has FileSystem
incompatabilities that SAXHandler etc
need) .<br>
</div>
<div><br>
</div>
<div>During a SAXHandler callback, I want to
kick this to an image that will parse some
data using a PEG grammar I wrote and that
needs some automated testing to perfect.<br>
</div>
<div><br>
</div>
<div>Communication I would like is pharo
(sax) -> squeak(xtreams-parsing).<br>
</div>
<div><br>
</div>
<div>Some basic reading showed rST from
about 2005? as a possibility as well as
Nebraska,which I believe has been removed
from Squeak several releases ago.<br>
</div>
<div>I have used neither of them.<br>
</div>
<div><br>
</div>
<div>If there is not a method I can make
work, then I will do
pharo(sax/stomp)->ApacheMQ->squeak(stomp/xtreams-parsing),
but I prefer a pure smalltalk mechanism.<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>I still have a textbook of mpq(?)
queues from a course I really enjoyed and
pharo(sax)->squeak(queueing)->squeak(xtreams-parsing) would be
really cool.<br>
</div>
<div><br>
</div>
<div>thx in advance.<br>
</div>
<div><br>
</div>
</div>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
<div><br>
</div>
</div>
<br>
</div>
</blockquote>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">
</pre>
</blockquote>
<br>
</body>
</html>