Page 1 of 1

servidor dbf (eleben) 2da revision web con php

Posted: Mon Aug 20, 2012 6:32 pm
by benjiben143
Hola buenos dias
anexo un modulo de cliente servidor realizado con la clase tsocket

el cual por lo pronto hace la conexion al servidor

regresa las bases de datos
regresa la estructura de una base de datos
regresa el contenido de un archivo (20 registros por lo pronto ) despues genero el pagineo completo

son modulos bases , el cual nos permitiria anexar cualquier peticion del cliente al servidor

se puede meter
cualquier funcion de bases de datos
como
append blank, replace, dbrlock,dbunlock, dbcreate, filtros ect, indexado


modulo servidor
http://www.eleben.com.mx/elebens.prg
modulo cliente
http://www.eleben.com.mx/elebenc.prg

falta validaciones que poco a poco ire metiendo ,, pero con esto nos damos una idea como realizar un servidor dbf

pasos :
1- ejecutar el servidor (elebens.prg) en cualquier carpeta que contenga dbf las cuales son las que van a manipular


2.- ejecutar el cliente (elebenc.prg)


saludos

Re: servidor dbf (eleben) primer revision

Posted: Mon Aug 20, 2012 7:10 pm
by Lautaro
Hola benjiben143 ,

Creo que puedes ver el hbnetio de harbour que implementa esta funcionalidad, creo que completa, te puede servir para ejemplo o ver como hacer

Saludos,


Lautaro Moreira

Re: servidor dbf (eleben) primer revision

Posted: Mon Aug 20, 2012 10:36 pm
by benjiben143
ok,gracias le hecho un vistaso

saludos

Re: servidor dbf (eleben) primer revision

Posted: Tue Aug 21, 2012 4:21 pm
by wmormar
ben10,

Excelente aporte.

Re: servidor dbf (eleben) primer revision

Posted: Wed Aug 22, 2012 8:21 am
by hmpaquito
Hola,

SÓLO por si puede servir la info:

En Harbour existen Rdds Cliente-Servidor:
- LetoDb
- Pritpal Bedhi Cliente-Servidor (desconozco el nombre del rdd), basado en hbNetio, que al parecer dejó muy avanzado pero por al parecer por falta de interés de los colegas abandonó su desarrollo. Creo que este es una muy buena opcion porque permite heredar de cualquier Rdd ya existente en Harbour, en intuyo que su potencia, si se probara y terminara sería mayor que la de LetoDb.

Saludos

Re: servidor dbf (eleben) primer revision

Posted: Wed Aug 22, 2012 2:27 pm
by benjiben143
hola buenas buenas

de antemano este pequeño avanze me sirvio en una empresa donde lo estan probando y estan contentos con la presentacion de la informacion por internet si usar sql, mysql y mucho mas rapido los browse en la red local ( aqui mando una lista de 20 registro , en donde lo estan probando manda todo el archivo empaquetado el cliente lo recibe y se procesa localmente la informacion )

a si mismo un reporte de x base de datos por x filtro tambien esta implementado

la ventaja de esto para mi , que viene como crear el servidor como mandar la peticion y recibir la peticion procesarla y mandarla a cliente

se que es el primer paso pero las peticiones las hice en un ratito donde batalle fue por la clase tsocket para el envio de la informacion pero haciendo pruebas quedo muy bien asta podemos mandar archivos completos zip o de grandes cantidades (ya probado )

saludos ,,,

Re: servidor dbf (eleben) primer revision

Posted: Wed Aug 22, 2012 3:08 pm
by wmormar
benjiben143,

Amigo, los comentarios de los colegas son para que veas otras opciones, claro esta que tu avance es mucho muy importante, y desde luego, lo que vale es el esfuerzo que cada quien imprime a sus logros.

Colegas, lo que hizo Ben10 no es buscarle la vuelta a la rueda, sino es algo que generó en base a una necesidad propia, hay que aplaudir su entusiasmo y sobre todo dedicación.

Pero de sobre manera su entusiasmo por aportarlo a la comunidad, habemos muchos que solo somos espectadores y que estos aportes nos sirven de mucho...

Y los que conoces otras herramientas deben exponerlo de igual manera, asi no se le busca la vuelta a la rueda....

Re: servidor dbf (eleben) primer revision

Posted: Fri Aug 24, 2012 4:16 pm
by benjiben143
hola buenas buenas ...

ya que actualizada con el browse ya listo con
avanze de pagina
regreso de pagina
inicio de pagina
final de pagina




el cliente
http://www.eleben.com.mx/elebenc.prg

el servidor
http://www.eleben.com.mx/elebens.prg/



saludos ...

Re: servidor dbf (eleben) primer revision

Posted: Mon Aug 27, 2012 8:29 pm
by benjiben143
hola ,,, con una pequeña adecuacion en la clase tsocket , al momento de mandar los mensajes ya es multiusuario

modificacion en clase tsocket,,, en el metodo senddata ,,,, le mando el socket ya que con el anterior no mandaba el socket adecuado de la peticion

Code: Select all

 
claseMETHOD SendData( cData, Msoc ) CLASS TSocket

   local nSize := Len( cData )
   local nLen  := nSize
   local nSent := 0

   if ! ::lSending
      ::lSending = .t.
   else
      AAdd( ::aBuffer, cData )
      return nSize
   endif
    while ( nLen > 0 .and. ;
           ( nSent := SocketSend( msoc, cData ) ) < nLen ) .or. ;        //-> aqui el agregue mosc,,,   quitandole ::nsocket  ya que ::nsocket no guardaba el ultimo socket 
           Len( ::aBuffer ) > 0
      if ::lDebug .and. ! Empty( ::cLogFile )
         LogFile( ::cLogFile, { "Sent:", nSent, "Len:", Len( cData ), "Buffer Len:", Len( ::aBuffer ), "Error:", WSAGetLastError() } )
      endif
      // Check for buffered packets to send
      if nLen == 0 .and. Len( ::aBuffer ) > 0
         cData = ::aBuffer[ 1 ]
         ADel( ::aBuffer, 1 )
         ASize( ::aBuffer, Len( ::aBuffer ) - 1 )
      endif
      if nSent != -1
         cData = SubStr( cData, nSent + 1 )
         nLen  = Len( cData )
      else
         if WSAGetLastError() != WSAEWOULDBLOCK
            // exit
         endif
      endif
      SysRefresh()
   end

   // if ::lDebug .and. ! Empty( ::cLogFile )
   //    LogFile( ::cLogFile, { cData } )
   // endif

   ::lSending = .f.

return nSize
 
por lo consiguiente el servidor elebens,, ya trabaja en modo multiusuario

servidor
http://www.eleben.com.mx/elebens.prg
cliente
http://www.eleben.com.mx/elebenc.prg


saludos

Re: servidor dbf (eleben) primer revision

Posted: Tue Aug 28, 2012 3:01 am
by sysctrl2
Coincido con el amigo, Willy, es bueno tener mas opciones
total, "Programar siempre sera un placer".

Re: servidor dbf (eleben) 2da revision web con php

Posted: Wed Sep 05, 2012 6:28 pm
by benjiben143
hola
le agregue conexcion con php

lo que hace es mostar via web las bases de datos del servidor con php sockets

que nos quiere decir que podemos mandar lo que queramos de las base de datos ,,,,


lo pueden bajar
http://www.eleben.com.mx/elebens.prg
http://www.eleben.com.mx/elebenc.prg
http://www.eleben.com.mx/sphp.php

archivo sphp.php

Code: Select all

/* Obtener el puerto para el servicio WWW. */
$service_port = 3850;

/* Obtener la dirección IP para el host objetivo. */
$address = gethostbyname('192.168.7.5');

/* Crear un socket TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() falló: razón: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Intentando conectar a '$address' en el puerto '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() falló.\nRazón: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "PHP>BASES hola";
$out = '';

echo "Enviando petición EL SERVIDOR ELEEBEN ...";

socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Leyendo respuesta:\n\n";
while ($out = socket_read($socket, 4048)) {
    echo $out;
}

echo "Cerrando socket...";
socket_close($socket);
echo "OK.\n\n";
?>