[squeak-dev] inter-image communication and queueing suggestions?

Marcel Taeumel marcel.taeumel at hpi.de
Fri Oct 15 12:19:35 UTC 2021

Hi Timothy --

Sockets work something like this (even though network name resolving seems to be tricky on my Windows machine at the moment):

| hostName port serverSocket serverProcess clientSocket |

hostName := NetNameResolver localHostName.
port := 1234.
data := 'Hello World!'.

serverSocket := Socket newTCP.
serverSocket listenOn: port.

serverProcess := [
| receivedData |
serverSocket waitForConnectionFor: 10 "seconds".
Transcript showln: 'Server accepted client connection'.
receivedData := serverSocket receiveData.
Transcript showln: 'Data received: ', receivedData.
serverSocket closeAndDestroy.
] newProcess.
serverProcess priority: Processor userBackgroundPriority.
serverProcess resume. "or use #forkAt: directly on block"

clientSocket := Socket newTCP.
connectTo: (NetNameResolver addressFromString: hostName)
port: port.
Transcript showln: 'Client connected to server'.

Transcript showln: 'Data sent: ', (clientSocket sendData: data), ' bytes'.
clientSocket closeAndDestroy.

Am 15.10.2021 13:34:07 schrieb gettimothy <gettimothy at zoho.com>:


Thank you.

I have not found any information on sockets in SBE or PBE.  I will continue too look.

In my exploring, I thought JSON looked promising..pharo as a json server thingy that perhaps squeak could consume.

IIRC Stomp, which I have used previously on squeak has two side too, but I am not sure on this.



---- On Fri, 15 Oct 2021 04:16:35 -0400 Marcel Taeumel <marcel.taeumel at hpi.de> wrote ----

Hi Timothy --

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.

Maybe you could also use a file and two file streams, a writer in Pharo and a reader in Squeak, as intermediary ...



Am 14.10.2021 15:24:23 schrieb gettimothy via Squeak-dev <squeak-dev at lists.squeakfoundation.org [mailto:squeak-dev at lists.squeakfoundation.org]>:

Hi Folks,

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.

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)  .

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.

Communication  I would like is  pharo (sax) -> squeak(xtreams-parsing).

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.

I have used neither of them.

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.

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.

thx in advance.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20211015/49fe4bb7/attachment.html>

More information about the Squeak-dev mailing list