Page 1 of 1
Socket Cliente solo xharbour sin FiveWin
Posted: Thu Nov 18, 2010 5:46 pm
by jgayoso
Si alguien me puede colaborar con un código de socket en xHarbour sin FiveWin. La idea que envie un mensaje a un IP y puerta determinada y espere respuesta durante un tiempo X.
Desde ya se agradece.
Me ayudarian bastante de dar vuelta un aplicativo en clipper.
Re: Socket Cliente solo xharbour sin FiveWin
Posted: Thu Nov 18, 2010 6:48 pm
by pablovidal
Esto es parte del codigo que uso. usalo a modo de ejemplo, me funciona con FWxH y xHb indistintamente.- En Windows, linux
Code: Select all
Method SendData() Class tDisa
LOCAL cBuffer, cRequest, cResponse, nBytes, pSocket
Local lOk := .F.
Local aToken := {}
Local cToken := ""
Local cSql := ""
Local cTicket := ""
default lAnular := .F.
INetInit()
pSocket := INetConnect( IPdelServidor, nPuerto )
IF INetErrorCode( pSocket ) <> 0
Alert( "Socket error:" + INetErrorDesc( pSocket ) )
INetCleanUp()
lError := .T.
Return(.F.)
ENDIF
nBytes := INetSend( pSocket, cTrama )
cBuffer := Space(441)
cResponse := ""
WHILE ( nBytes > 0 )
nBytes := INetRecv(pSocket, @cBuffer )
cResponse += Left( cBuffer, nBytes )
cBuffer := Space(411)
ENDDO
aToken := HB_ATokens( cResponse, chr(17) )
For nAt := 1 to Len( aToken )
If nAt == 15
aToken[15] := SubStr( aToken[15], 1, (Len( aToken[15] ) - 1) )
EndIf
Next nAt
Return( .t. )
Re: Socket Cliente solo xharbour sin FiveWin
Posted: Thu Nov 18, 2010 7:30 pm
by jgayoso
Gracias Pablo, muy agradecido.
Re: Socket Cliente solo xharbour sin FiveWin
Posted: Thu Nov 18, 2010 8:51 pm
by jgayoso
Pablo, se agradece, si me puedes indicar un ejemplo de como usar en honor al tiempo, se agradeceria mucho.
pablovidal wrote:Esto es parte del codigo que uso. usalo a modo de ejemplo, me funciona con FWxH y xHb indistintamente.- En Windows, linux
Code: Select all
Method SendData() Class tDisa
LOCAL cBuffer, cRequest, cResponse, nBytes, pSocket
Local lOk := .F.
Local aToken := {}
Local cToken := ""
Local cSql := ""
Local cTicket := ""
default lAnular := .F.
INetInit()
pSocket := INetConnect( IPdelServidor, nPuerto )
IF INetErrorCode( pSocket ) <> 0
Alert( "Socket error:" + INetErrorDesc( pSocket ) )
INetCleanUp()
lError := .T.
Return(.F.)
ENDIF
nBytes := INetSend( pSocket, cTrama )
cBuffer := Space(441)
cResponse := ""
WHILE ( nBytes > 0 )
nBytes := INetRecv(pSocket, @cBuffer )
cResponse += Left( cBuffer, nBytes )
cBuffer := Space(411)
ENDDO
aToken := HB_ATokens( cResponse, chr(17) )
For nAt := 1 to Len( aToken )
If nAt == 15
aToken[15] := SubStr( aToken[15], 1, (Len( aToken[15] ) - 1) )
EndIf
Next nAt
Return( .t. )