Most socket API's allow for the creation of a server socket on the next 
available port, often by specifying 0 instead of a port. When the socket is 
bound, one can retrieve the local port and let the client(s) know. I tried to 
do that in Pharo today, and these steps seem to work, by accepting an incoming 
connection gives a primitive failed.

Anyone tried this ?

| socket |
socket := Socket newTCP.
socket listenOn: 0.
[ [
        Transcript crShow: 'Port is ', socket localPort printString.
        (socket waitForAcceptFor: 60)
                ifNotNil: [ :client | | data |
                        data := client receiveDataTimeout: 30.
                        Transcript crShow: 'Received ', data asString.
                        data ifNotNil: [ client sendData: data reverse; close ]
                        ].
        ] ensure: [ socket close ] ] fork.

I am running the Pharo Cog VM on Mac OS X using Pharo 1.4.

Thx,

Sven

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to