Squeak SmalltalkJoker Squeak Smalltalk : Network : prevnext Socket Inspector Behavior Watching

In a workspace type

Socket newTCP

and inspect it twice - this gives you two inspectors.  move them so 
that they are side by side.  In the left one type

self listenOn: 8080

in the bottom evaluation pane and do-it.  Click on 'self' in the 
inspector and check that the socket is waiting.

Go the the right hand inspector and type

self connectTo: NetNameResolver localHostAddress port: 8080

and do-it.  If you have both inspectors showing the state of 'self' 
then you should immediately see that they have both 'connected'.

In the right hand one then type

self sendData: 'hello'

and do-it.  And in the left one

self receiveData

and print-it.  It should say 'hello'.  You can then do anything you 
like in these two inspectors.  You have successfully created a TCP 
connection and sent some data.

To then find out what other messages you can send you can either 
browse the class directly by alt-b on 'self' or look at its protocol 
through alt-p.

rather than using Socket>>listenOn: you could use 
Socket>>listenOn:backlogSize: and then inspect

self accept

to get an inspector for each incoming connection.

Some messages that you can send to sockets can block for a reasonable 
timeout depending on various things so you can always alt-. to get the 
ui back if it seems to freeze.

Before you close the inspectors it is worth doing a

self closeAndDestroy

in each one so that you release the socket's resources.