Well, trying to get the example code working using class OldSocket. Doesn't seem to work with squeak or cobalt.
I'm stuck trying to figure out how to do it period, and when the examples don't work, I'm lost... ;-/
Suggestions? Help?
Thanks.
Lawson
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.
Cheers,
Herbert mailto:herbertkoenig@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
Thanks very much. Sorta got things almost working, but still confused abut threading/forking/non-blocking issues (2-year programming degrees don't go into the multi-processing stuff so I'm supplementing with online lectures from MIT, arsdigita, etc. Feedback isn't a forte with passive web lectures however).
I've new hurdles to get over, including the non-blocking design, and how to make sure my packed stream method doesn't pad my UDP packets with zeros at the end but that latter is purely a mechanical detail to trace through.
Thanks again.
Lawson
Herbert König wrote:
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.
Cheers,
Herbert mailto:herbertkoenig@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
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
beginners@lists.squeakfoundation.org