[Newbies] Re: Building a remote countdown clock

Herbert König herbertkoenig at gmx.net
Sat Nov 7 10:25:02 UTC 2009


Hi Andy,

AB> That's great, thank you very much.  I have a couple of other
AB> questions that sprang from using this code.
AB> 1. I couldn't get the WorldState addDeferredUIMessage: to do
AB> anything.  What is supposed to happen?  I am running the latest
AB> Pharo build. The class exists, and I didn't get a DNU, but I
AB> didn't get anything else either!

uh yeah I wasn't sure what approach you would choose and I was about
to leave for work. Sorry.

First I'm on Squeak 3.8 so let me try Pharo.

All works fine in what I just downloaded from Pharo Website.

So, after you added the deferred UI message, the next line
(sendUDPData...) should pop up an Inspector with an Array. I found the
deferred UI message trick somewhere in the archives or maybe got
direct help from someone. You won't need it.

You need two images. In the receiver you build a loop in which you do
something like:

commSocket dataAvailable
  ifTrue: [receiveResult :=
   commSocket receiveUDPDataInto: receiveBuffer.
   "now display your time in a big TextMorph"]
  ifFalse: [myDelay wait]


Doing real time asynchronous things with the Squeak UI is a bit tricky
but following the lead of ClockMorph should get you going.

The common animation methods in Squeak isolate you from that problems
but changing a Morph's shape at the wrong moment is not good. Sorry I
can't be more specific but if you report problems I will remember
them, I did several animations of lots of Morphs.

AB> 2. Out of curiosity, I tried used the NetNameResolver
AB> addressForName: method as a way of getting a socket address 
AB> (instead of using the ByteArray.  I tried this when nothing was
AB> working, and I noticed the method call in several of the Socket
AB> methods.  However, Squeak gave me a DNU.  Is there a simple way to
AB> enter host names using the NetNameResolver, or have I completely
AB> misunderstood its function?

no, you haven't. I used the code in a network with fixed IP's and no
DHCP running. Right here using NetNameResolver works just fine. If you
doIt:

(NetNameResolver addressForName: 'aComputersName') inspect

you should get an Inspector on a ByteArray with the IP address.


Cheers,

Herbert   



More information about the Beginners mailing list