Difference between revisions of "Sockets/es"

From Free Pascal wiki
Jump to navigationJump to search
(New page: {{Sockets}} === About === Sockets is a modified-LGPL package for Lazarus. It defines the TSocketClient component for connecting applications to generic server sockets over TCP/IP networks...)
 
m
 
(19 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Sockets}}
+
{{Sockets}}[[category:Castellano]][[category:Español]]
  
=== About ===
+
=== Acerca de ===
Sockets is a modified-LGPL package for Lazarus. It defines the TSocketClient component for connecting applications to generic server sockets over TCP/IP networks.
 
  
 +
Sockets es un paquete modificado-LGPL para Lazarus. Define el componente TSocketClient para conectar aplicaciones a un servidor genérico de sockets en redes que utilizan TCP/IP.
  
The download contains the component Pascal files, the Lazarus package file and resource files and the modified-LGPL license text files.
+
La descarga contiene los ficheros de componentes de Pascal, el fichero de paquete de Lazarus y ficheros de recursos y además los ficheros de texto de la licencia LGPL-modificada.
  
This component was designed for applications running on Linux and Win32 platforms.
+
Este componente se ha diseñado para aplicaciones que se ejecuten en plataformas Linux y Win32.
  
=== Author ===
+
=== Autor ===
 
[[User:Blacktony|Antonio d'Avino]]  
 
[[User:Blacktony|Antonio d'Avino]]  
  
=== License ===
+
=== Licencia ===
Modified LGPL (read COPYING.modifiedLGPL and COPYING.LGPL included in package).
+
 
 +
LGPL modificada (leer COPYING.modifiedLGPL y COPYING.LGPL, ambos incluidos en el paquete).
 
   
 
   
=== Download ===
+
=== Descarga ===
The latest stable release can be found on [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page] or on author's web pages [http://infoconsult.homelinux.net http://infoconsult.homelinux.net].
 
  
* Now you can find the Sockets [http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=98986 Here.]
+
Se puede encontrar la última versión estable en [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page] o en los sites del autor [http://infoconsult.homelinux.net http://infoconsult.homelinux.net].
  
=== Change Log ===
+
(Julio 2009: este enlace no parece funcionar).
* Version 0.2.0 2005/06/01
 
  
=== Roadmap ===
+
* Actualmente también puedes descargar el paquete Sockets desde [http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=98986 aquí.]
* Implementation of asynchronous mode in write operations.
 
* Adding of TSocketServer class to package
 
  
=== Dependencies / System Requirements ===
+
Si alguien desea completar este apartado con información actualizada. Cuando tenga un rato a ver si miro por si este componente ya formase parte de la paleta por defecto.
 +
 
 +
Interesados por el tema ver tambien:
 +
 
 +
 
 +
[http://www.synapse.ararat.cz/doku.php ARARAT SYNAPSE]
 +
 
 +
[http://www.indyproject.org/Sockets/fpc/index.EN.aspx INDY (Internet Direct)]
 +
 
 +
[http://wiki.lazarus.freepascal.org/index.php/Indy_with_Lazarus INDY en FreePascal/Lazarus]
 +
 
 +
=== Log de cambios ===
 +
* Versión 0.2.0 2005/06/01
 +
 
 +
=== Recorrido ===
 +
* Implementación del modo asíncrono en operaciones de escritura.
 +
* Añadiendo al paquete la clase TSocketServer.
 +
 
 +
=== Dependencias / Requerimientos del sistema ===
 
* Lazarus 0.9.6 (FPC 1.9.8)
 
* Lazarus 0.9.6 (FPC 1.9.8)
  
Status: Beta
+
Estado: Beta
 +
 
 +
Incidencias:
 +
Testeado en Windows (Win2K) y Linux (Mdk 10.1).
 +
 
 +
=== Instalación ===
 +
* En el directorio de componentes de Lazarus descomprimir - untar (unzip)- los ficheros contenidos en sockets-laz-package-<version>.tar.gz. Se creará la carpeta Sockets.
 +
* Abre lazarus.
 +
* Abre el paquete sockets_laz.lpk desde la entrada Componente/Abrir fichero de paquete (.lpk)
 +
* (Click en compilaron solamente si no necesitas instalar los componentes dentro del IDE)
 +
* Click en Instalar y responde 'Si' cuando pregunte si reconstruir Lazarus rebuilding. Se creará una nueva solapa en la paleta de componentes llamada 'Sockets'.
 +
 
 +
Nota para usuarios de Win32: En caso de experimentar dificultades a la hora de compilar los ficheros Pascal, puedes necesitar añadir la siguiente trayectoria (path):
 +
 +
<unidad>:<trayecto>\lazarus\lcl\units\i386\win32
 +
(eg: c:\programs\lazarus\lcl\units\i386\win32)
 +
to the 'Other unit files ...' en la solapa 'Trayectos' dentro de 'Opciones del Compilador' en la ventana del gestor de paquetes de Lazarus.
 +
 
 +
=== Utilización ===
 +
Arrastra un componente TSocketClient hasta alguna parte del formulario para cualquiera de las distintas conexiones socket que necesita la aplicación.
 +
 
 +
Las propiedades imprescindibles de este componente que hay que definir obligatoriamente son:
 +
 
 +
 
  
Issues:  
+
* Host : la dirección TCP/IP o la URL del PC donde están activos los sockets en modo servidor;
Tested on Windows (Win2K) and Linux (Mdk 10.1).
+
* Port : el puerto TCP/IP a través del cual el proceso del servidor está escuchando (listening);
  
=== Installation ===
+
Las propiedades opcionales que se pueden establecer son:
* In the lazarus/components directory, untar (unzip) the files from sockets-laz-package-<version>.tar.gz file. The sockets folder will be created.
 
* Open lazarus
 
* Open the package sockets_laz.lpk with Component/Open package file (.lpk)
 
* (Click on Compile only if you don't want to install the component into the IDE)
 
* Click on Install and answer 'Yes' when you are asked about Lazarus rebuilding. A new tab named 'Sockets' will be created in the components palette.
 
  
Note for Win32 users: In case you experience some difficults in compiling the Pascal files, you may need to add
+
* DosLf : Se establece a 'True', cuando se ejecuta un procedimiento writeLineLf un CR (0x0D) se antepone a LF (0x0A)(ver más adelante).
the following path:
+
* ReadCharsThereshold : el número de caracteres leidos desde el canal antes del lanzamiento de un evento OnReadChars (ver más adelante). 0 es equivalente a 1.
<some-drive>:<some-path>\lazarus\lcl\units\i386\win32
 
(ie: c:\programs\lazarus\lcl\units\i386\win32)
 
to the 'Other unit files ...' in 'Paths' tab of 'Compiler Options' of the lazarus package manager window.
 
  
=== Usage ===
+
Ahora ya se puede establecer al valor 'True' la propiedad Active para abrir el canal. Se genera una excepción si falla la conexión (host no alcanzable, la no existencia un un proceso escuchando en un puerto del servidor, errores de red...).
Drop a TSocketClient component on a form, for any different client socket connections your application needs.
 
Mandatory property of this component you have to set are:
 
  
* Host : the TCP/IP address or the URL of the PC where the server sockets you want to connect to is running;
+
La conexión se cierra estableciendo al valor 'False' la propiedad Active. Además, se puede testear la propiedad Active para verificar si el estado de la conexión esta en ON (el cierre de la conexión por parte del servidor establece la propiedad Active en 'False').
* Port : the TCP/IP port on wich the server process is listening;
 
  
Optional properties you may set are:
 
  
* DosLf : If set to 'True', a CR (0x0D) is prepend to LF (0x0A) when a writeLineLf procedure is executed (see forward).
+
'''Métodos públicos de la clase TSocketClient.'''
* ReadCharsThereshold : the number of characters read from channel before a OnReadChars event is triggered (see forward). 0 is equivalent to 1.
 
  
Now you can set to 'True' the property Active for opening the channel. An exception is raised if connection fails (host unreachable, no server process listening on port, network errors).
+
* function bufferChars : Integer. Retorna el número de caracteres recibidos desde el servidor a través del canal, estando disponible para lectura.
The connection is closed setting 'False' the active property. Also, you can test the Active property to verify if connection status is ON (the closing
+
* function getBuffer (var buffer: String) : Integer. Esta función copia los caracteres del buffer interno del componente en la cadena de parámetro 'buffer'. Retorna el número de caracteres copiados y vacía el buffer.
of the connection by the server side set false this property).
+
* function readLine (var buffer: String) : Boolean. Los caracteres en el buffer interno se copian en la cadena de parámetro 'buffer', upto, pero no incluyéndolo, la ocurrencia del primer carácter LF (0x0A9) chara. Cualquiera otros caracteres CR 0x0D) se descartan.
  
'''Public methods of the TSocketClient class.'''
+
Si se copia la línea completa, entonces la función retorna true. Si no encuentra algún caracter LF, entonces copia el buffer interno completo en el parámetro 'buffer' y a continuación la función retorna false.
  
* function bufferChars : Integer. It returns the number of chars received from the server process through the channel and available for reading.
+
Nota: el contenido pendiente en el buffer interno se encuentra disponible además cuando se cierra la conexión. Solamente se perderá si la conexión de vuelve a abrir.
* function getBuffer (var buffer: String) : Integer. This function copy the chars from internal buffer of component into the parameter string 'buffer'. The number of characters copied is returned and the internal buffer is empty.
 
* function readLine (var buffer: String) : Boolean. The characters in internal buffer are copied into the parameter string 'buffer', upto, but not including, the first LF (0x0A9) character occurrence. Any CR characters (0x0D) are discarded.
 
If a complete line can be copied, the function returns true. If not any LF char is encountered, the whole internal buffer is copied into the 'buffer' parameter and the function returns false.
 
  
Note: the pending content in internal buffer is available also when the connection is closed. It will be lost only when the connection is reopen.
+
* function writeChar (buffer : Char ) : ShortInt. Esta función escribe un único carácter en el canal, retornando 0 en caso satisfactorio o un valor menor que cero (<0) si falla.
 +
* function writeLine (buffer : String) : ShortInt. Se envía al servidor el contenido del parámetro 'buffer'. La función retorna 0 en caso de tener éxito o un valor menor que 0 (<0) si falla.
 +
* function writeLineLf (buffer : String) : ShortInt. Igual que la función writeLine, pero se anexa un carácter LF (0x0A) (una pareja de CR/LF, si la propiedad DOSLf es verdadera 'true').  
 +
La función retorna 0 en caso de éxito y un valor menor que 0 (<0) si produce fallo.
  
* function writeChar (buffer : Char ) : ShortInt. This function write a single char on channel, returning 0 in case of success or a value less than 0 if it fails.
 
* function writeLine (buffer : String) : ShortInt. The content of parameter buffer is sent to server. The function returns 0 in case of success or a value less than 0 if it fails.
 
* function writeLineLf (buffer : String) : ShortInt. Same of writeLine function, but a LF char (0x0A) is appended (a couple of CR/LF, if property DOSLf is true). The function returns 0 in case of success or a value less than 0 if it fails.
 
  
Note: at this moment, the write methods of the class are not asynchronous, so they may be blocking for your application in case of failing. This will be fixed in next release.
+
Nota: hasta el momento, los métodos de escritura de la clase no son asíncronos, por lo que deben ser bloqueados desde la aplicación en caso de fallo. Esto se corregirá en la próxima versión.
  
'''Events of TSocketClient class.'''
+
'''Eventos de la clase TSocketClient.'''
  
* OnBufferFull : this event is triggered when the internal buffer is full. No others characters are received from channel until characters are read from internal buffer.
+
* OnBufferFull : este evento se lanza cuando el buffer interno está lleno. No se recepcionan más caracteres desde el canal hasta que son leidos desde el buffer interno. Este evento tiene lugar cuando se recibe un carácter LF (0x0A) desde el servidor.
* OnEndOfLineReceive : this event occurs where a LF character (0x0A) is received from server.
+
* OnReadChars : este evento se lanza (triggered) cuando al menos un cierto número de ReadCharsThereshold permanecen pendientes en el buffer interno.
* OnReadChars : this event is triggered when a number of at least ReadCharsThereshold is pending in internal buffer.
+
* OnStateChange : este evento tiene lugar en el momento en que se cambie el valor de la propiedad Active.
* OnStateChange : this event occurs any time the Active property change its value.
 

Latest revision as of 23:35, 9 September 2009

English (en) español (es) français (fr) slovenčina (sk)

Acerca de

Sockets es un paquete modificado-LGPL para Lazarus. Define el componente TSocketClient para conectar aplicaciones a un servidor genérico de sockets en redes que utilizan TCP/IP.

La descarga contiene los ficheros de componentes de Pascal, el fichero de paquete de Lazarus y ficheros de recursos y además los ficheros de texto de la licencia LGPL-modificada.

Este componente se ha diseñado para aplicaciones que se ejecuten en plataformas Linux y Win32.

Autor

Antonio d'Avino

Licencia

LGPL modificada (leer COPYING.modifiedLGPL y COPYING.LGPL, ambos incluidos en el paquete).

Descarga

Se puede encontrar la última versión estable en Lazarus CCR Files page o en los sites del autor http://infoconsult.homelinux.net.

(Julio 2009: este enlace no parece funcionar).

  • Actualmente también puedes descargar el paquete Sockets desde aquí.

Si alguien desea completar este apartado con información actualizada. Cuando tenga un rato a ver si miro por si este componente ya formase parte de la paleta por defecto.

Interesados por el tema ver tambien:


ARARAT SYNAPSE

INDY (Internet Direct)

INDY en FreePascal/Lazarus

Log de cambios

  • Versión 0.2.0 2005/06/01

Recorrido

  • Implementación del modo asíncrono en operaciones de escritura.
  • Añadiendo al paquete la clase TSocketServer.

Dependencias / Requerimientos del sistema

  • Lazarus 0.9.6 (FPC 1.9.8)

Estado: Beta

Incidencias: Testeado en Windows (Win2K) y Linux (Mdk 10.1).

Instalación

  • En el directorio de componentes de Lazarus descomprimir - untar (unzip)- los ficheros contenidos en sockets-laz-package-<version>.tar.gz. Se creará la carpeta Sockets.
  • Abre lazarus.
  • Abre el paquete sockets_laz.lpk desde la entrada Componente/Abrir fichero de paquete (.lpk)
  • (Click en compilaron solamente si no necesitas instalar los componentes dentro del IDE)
  • Click en Instalar y responde 'Si' cuando pregunte si reconstruir Lazarus rebuilding. Se creará una nueva solapa en la paleta de componentes llamada 'Sockets'.

Nota para usuarios de Win32: En caso de experimentar dificultades a la hora de compilar los ficheros Pascal, puedes necesitar añadir la siguiente trayectoria (path):

<unidad>:<trayecto>\lazarus\lcl\units\i386\win32 (eg: c:\programs\lazarus\lcl\units\i386\win32) to the 'Other unit files ...' en la solapa 'Trayectos' dentro de 'Opciones del Compilador' en la ventana del gestor de paquetes de Lazarus.

Utilización

Arrastra un componente TSocketClient hasta alguna parte del formulario para cualquiera de las distintas conexiones socket que necesita la aplicación.

Las propiedades imprescindibles de este componente que hay que definir obligatoriamente son:


  • Host : la dirección TCP/IP o la URL del PC donde están activos los sockets en modo servidor;
  • Port : el puerto TCP/IP a través del cual el proceso del servidor está escuchando (listening);

Las propiedades opcionales que se pueden establecer son:

  • DosLf : Se establece a 'True', cuando se ejecuta un procedimiento writeLineLf un CR (0x0D) se antepone a LF (0x0A)(ver más adelante).
  • ReadCharsThereshold : el número de caracteres leidos desde el canal antes del lanzamiento de un evento OnReadChars (ver más adelante). 0 es equivalente a 1.

Ahora ya se puede establecer al valor 'True' la propiedad Active para abrir el canal. Se genera una excepción si falla la conexión (host no alcanzable, la no existencia un un proceso escuchando en un puerto del servidor, errores de red...).

La conexión se cierra estableciendo al valor 'False' la propiedad Active. Además, se puede testear la propiedad Active para verificar si el estado de la conexión esta en ON (el cierre de la conexión por parte del servidor establece la propiedad Active en 'False').


Métodos públicos de la clase TSocketClient.

  • function bufferChars : Integer. Retorna el número de caracteres recibidos desde el servidor a través del canal, estando disponible para lectura.
  • function getBuffer (var buffer: String) : Integer. Esta función copia los caracteres del buffer interno del componente en la cadena de parámetro 'buffer'. Retorna el número de caracteres copiados y vacía el buffer.
  • function readLine (var buffer: String) : Boolean. Los caracteres en el buffer interno se copian en la cadena de parámetro 'buffer', upto, pero no incluyéndolo, la ocurrencia del primer carácter LF (0x0A9) chara. Cualquiera otros caracteres CR 0x0D) se descartan.

Si se copia la línea completa, entonces la función retorna true. Si no encuentra algún caracter LF, entonces copia el buffer interno completo en el parámetro 'buffer' y a continuación la función retorna false.

Nota: el contenido pendiente en el buffer interno se encuentra disponible además cuando se cierra la conexión. Solamente se perderá si la conexión de vuelve a abrir.

  • function writeChar (buffer : Char ) : ShortInt. Esta función escribe un único carácter en el canal, retornando 0 en caso satisfactorio o un valor menor que cero (<0) si falla.
  • function writeLine (buffer : String) : ShortInt. Se envía al servidor el contenido del parámetro 'buffer'. La función retorna 0 en caso de tener éxito o un valor menor que 0 (<0) si falla.
  • function writeLineLf (buffer : String) : ShortInt. Igual que la función writeLine, pero se anexa un carácter LF (0x0A) (una pareja de CR/LF, si la propiedad DOSLf es verdadera 'true').

La función retorna 0 en caso de éxito y un valor menor que 0 (<0) si produce fallo.


Nota: hasta el momento, los métodos de escritura de la clase no son asíncronos, por lo que deben ser bloqueados desde la aplicación en caso de fallo. Esto se corregirá en la próxima versión.

Eventos de la clase TSocketClient.

  • OnBufferFull : este evento se lanza cuando el buffer interno está lleno. No se recepcionan más caracteres desde el canal hasta que son leidos desde el buffer interno. Este evento tiene lugar cuando se recibe un carácter LF (0x0A) desde el servidor.
  • OnReadChars : este evento se lanza (triggered) cuando al menos un cierto número de ReadCharsThereshold permanecen pendientes en el buffer interno.
  • OnStateChange : este evento tiene lugar en el momento en que se cambie el valor de la propiedad Active.