Yes!!!! I forwarded that mail to the network chapter authors. and we will really ask for feedback
Stef On Apr 21, 2011, at 4:06 PM, Oscar E A Callau wrote: > Thank you very much Sven, I think this must be include in the pharo book, > because it was hard to find good examples. > > > Cheers. > > > On Apr 21, 2011, at 08:22 , Sven Van Caekenberghe wrote: > >> Oscar, >> >> This is how I would write it, using first SocketStreams (which is better for >> most users) and then plain Sockets. This works for me on Pharo 1.2.2 and 1.3. >> >> HTH, >> >> Sven >> >> >> | serverSocket dataSent dataRead clientStream semaphore | >> semaphore := Semaphore new. >> serverSocket := Socket newTCP listenOn: 9191 backlogSize: 5. >> [ [ | clientSocket serverStream | >> clientSocket := serverSocket waitForAcceptFor: 10. >> serverStream := SocketStream on: clientSocket. >> dataRead := serverStream upToEnd. >> serverStream close. >> semaphore signal ] ensure: [ serverSocket close ] ] forkAt: Processor >> userBackgroundPriority. >> (Delay forMilliseconds: 100) wait. >> dataSent := 'Hello there!'. >> clientStream := SocketStream openConnectionToHostNamed: 'localhost' >> port: 9191. >> clientStream nextPutAll: dataSent. >> clientStream close. >> semaphore wait. >> self assert: dataSent = dataRead. >> dataRead >> >> >> >> | serverSocket clientSocket dataSent dataRead semaphore | >> semaphore := Semaphore new. >> serverSocket := Socket newTCP listenOn: 9191 backlogSize: 5. >> [ [ | clientConnectionSocket | >> clientConnectionSocket := serverSocket waitForAcceptFor: 10. >> dataRead := clientConnectionSocket receiveData. >> clientConnectionSocket close. >> semaphore signal ] ensure: [ serverSocket close ] ] forkAt: Processor >> userBackgroundPriority. >> (Delay forMilliseconds: 100) wait. >> dataSent := 'Hello there!'. >> clientSocket := Socket newTCP connectToHostNamed: 'localhost' port: >> 9191. >> clientSocket sendData: dataSent. >> clientSocket close. >> semaphore wait. >> self assert: dataSent = dataRead. >> dataRead >> >> >> >> On 21 Apr 2011, at 15:04, Oscar E A Callau wrote: >> >>> >>> Thanks all for your comments. >>> >>> On Apr 21, 2011, at 07:13 , Sven Van Caekenberghe wrote: >>>> >>>> I think the problem might be the #listenOn: >>>> I use #listenOn:backlogSize: >>>> These are using different primitives. >>> >>> I tested with #listenOn:backlogSize: too, with the same result, error on >>> #waitForAcceptFor: . >>> >>> Cheers >>> >>> >> > >
