UDP client-server revisited...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

UDP client-server revisited...

LawsonEnglish
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
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: UDP client-server revisited...

Herbert König
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:[hidden email]

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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: UDP client-server revisited...

LawsonEnglish
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:[hidden email]
>
> 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
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>  

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners