Socket Cliente solo xharbour sin FiveWin

Post Reply
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Socket Cliente solo xharbour sin FiveWin

Post 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.
User avatar
pablovidal
Posts: 398
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana
Contact:

Re: Socket Cliente solo xharbour sin FiveWin

Post 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. )
 
Saludos,

Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: Socket Cliente solo xharbour sin FiveWin

Post by jgayoso »

Gracias Pablo, muy agradecido.
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: Socket Cliente solo xharbour sin FiveWin

Post 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. )
 
Post Reply