Cuando hago hago una conexión a un puerto y este no esta abierto, la aplicación me devuelve el error 10060.
La descripción del error es "Time-out error ".
Hasta ahí todo funciona muy bien.
Lo que no he podido controlar es que mi aplicación no permita ejecutar otra acción hasta que el socket reciba el mensaje del error y autómaticamente se cierre.
Esta es la función que estoy usando :
- Code: Select all Expand view RUN
FUNCTION Client( oWnd )
LOCAL cIp
LOCAL cServer
LOCAL nPort := 2510
oSocket := TSocket():New( nPort )
oSocket:bRead := { | oSocket | OnReadClient( oSocket ) }
oSocket:bConnect := { | oSocket , nErrorCode | ClientSend( oSocket , nErrorCode ) }
oSocket:bClose := { || MsgInfo( "El Servidor cerro la sesion" ) , GetApp():oWnd:End() }
oSocket:Connect( GetApp():cServer , nPort )
oSocket:Listen()
RETURN( NIL )
FUNCTION ClientSend( oSocket , nError )
IF nError == 0
oSocket:SendData( "START "+GetHostName()+ " conectado desde "+ oSocket:cIPAddr+ " a las "+Time())
ELSE
MsgStop( "Error conexion..." + Str( nError ) +CRLF )
GetApp():oWnd:End()
ENDIF
RETURN( NIL )
EL código funciona, sin embargo el periodo de respuesta es cuando menos 45 segundos y durante ese periodo de tiempo el sistema permite hacer cualquier acción.
Hay alguna manera de que pueda controlar eso ?