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.
Socket Cliente solo xharbour sin FiveWin
- pablovidal
- Posts: 398
- Joined: Thu Oct 06, 2005 10:15 pm
- Location: Republica Dominicana
- Contact:
Re: Socket Cliente solo xharbour sin FiveWin
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. )
Saludos,
Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
Re: Socket Cliente solo xharbour sin FiveWin
Gracias Pablo, muy agradecido.
Re: Socket Cliente solo xharbour sin FiveWin
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. )