Guidance on use of Socket
Janko Mivšek
janko.mivsek at eranova.si
Fri Dec 28 18:44:57 UTC 2007
And I managed to make a mistake or two in below code. But you'll
probably find it by yourself :)
Janko
Janko Mivšek wrote:
> Hi John,
>
> John Thornborrow wrote:
>
>> I'm trying to create a simple listening service on localhost port 3456,
>> I assumed this would wait for 30 seconds, then proceed but it singals
>> ConnectionClosed error at the #waitForDataFor: message:
>>
>> | sock |
>> sock := Socket new.
>> sock listOn: 3456.
>> sock waitForDataFor: 30.
>
> You need to wait for a connection with an additional method
> waitForAcceptFor: So your code should be something like:
>
> sock := Socket new.
> sock listOn: 3456.
> connSock := sock waitForAcceptFor: 100. "100s"
> connSock notNil ifTrue: [connSock waitForDataFor: 30].
>
> This will trigger once. If you want more, you need to put above in
> loops. Something like:
>
> sock := Socket new.
> sock listOn: 3456.
> [true] whileTrue:
> [connSock isNil whileTrue:
> [connSock := sock sock waitForAcceptFor: 100].
> data := connSock waitForDataFor: 30.
> "process here that data"]
> connSocket close].
>
> But if you want simpler sockets, I recommend you to use SpSocket from
> Sport portability library. Look for it on SqueakMap, Universes or
> SqueakSource.
>
> I hope this helps a bit.
>
> Janko
>
>
--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
More information about the Squeak-dev
mailing list
|