[Newbies] UDP client-server revisited...

Herbert König herbertkoenig at gmx.net
Thu Dec 3 09:01:46 UTC 2009

Hello Lawson,

Sorry this went private.

LE> Well, trying to get the example code working using class OldSocket.
LE> Doesn't seem to work with squeak or cobalt.

this is a bit unspecific. OldSocket was OldSocket already in a 3.6
image and the class has not a single user (Socket has 84 in a 3.6
image). So I used Socket when I controlled an Asteroids Game via UDP.

LE> I'm stuck trying to figure out how to do it period, and when the 
LE> examples don't work, I'm lost... ;-/

LE> Suggestions? Help?
On this list we had a discussion about this beginning of last month.

I posted the snippet from the end of this message which I tested in
Squeak 3.8 and latest Pharo.


Herbert                            mailto:herbertkoenig at gmx.net

Some code:

Socket initializeNetwork  "Only once per image"
dst := Socket newUDP setPort: 1979.
src := Socket newUDP setPort: 2345.
buff := ByteArray new: 1026.
delay := Delay forMilliseconds: 10.
localhost := ByteArray withAll: { 192. 168. 42. 11 }.
received := nil.

rp := [[ received := dst receiveUDPDataInto: buff.
 received first  isZero ] whileTrue: [ delay wait ].
 WorldState addDeferredUIMessage: [ { buff. received } inspect ]] fork.

src sendUDPData: ( 'ctmame' , (String value: 10) , (String value: 162)) toHost: localhost port:  1979.

rp terminate.
src closeAndDestroy.
dst closeAndDestroy.

src := nil.
dst := nil.
buff := nil.
delay := nil.
rp := nil.

Smalltalk garbageCollect
Socket allInstances

More information about the Beginners mailing list