Hi again, I found a solution (but not what was the problem); change the server code to the following: |port msg| port:= 9191. Transcript open; show: 'testing --- ' ; cr. listening := true. [self isListening] whileTrue: [ |server connectedClient| server := Socket newTCP. server listenOn: port. connectedClient := [server waitForConnectionFor: 5] on: ConnectionTimedOut do: [] . server isConnected ifTrue: [ msg:= 'Data: ', server receiveData. Transcript show: msg ; cr. ]. server closeAndDestroy. ]. Transcript show: 'end ------'. basically, I'm changing #waitForAcceptFor: for #waitForConnectionFor: I hope someone can explain me what are the differences. Cheers On Apr 20, 2011, at 23:20 , Oscar E A Callau wrote:
Hi all, may be this is a simple/stupid/repetitive question, but I don't know how to solve it.
I'm trying to connect two sockets on Pharo 1.2.1, with following code:
Server --------
|port msg| port:= 9191.
Transcript open; show: 'testing --- ' ; cr.
listening := true. [self isListening] whileTrue: [ |server connectedClient| server := Socket newTCP. server listenOn: port. connectedClient := server waitForAcceptFor: 5. connectedClient ifNil: [msg:='TimeOut'] ifNotNil:[ msg := 'Data: ', connectedClient receiveData connectedClient closeAndDestroy ]. Transcript show: msg ; cr. server closeAndDestroy. ].
Transcript show: 'end ------'.
------------ Client ------------
| s | s:= Socket newTCP. s connectToHostNamed: 'localhost' port: 9191. s sendData: 'Hello'. s closeAndDestroy
---------
First I run the server and later the client and get the following error:
Error: primAcceptFrom:receiveBufferSize:sendBufSize:semaIndex: failed
I attach a screenshot of the debug window.
Thanks in advance.
<Screen shot 2011-04-20 at 23.16.48 .png>