Difference between revisions of "Networking/es"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Networking}}
 
{{Networking}}
 
= Trabajando en RED =
 
= Trabajando en RED =
[[category:Castellano|P]][[category:Español|P]]
+
[[category:Castellano|R]][[category:Español|R]]
  
  &nbspEsta página será el comienzo para las tutorias sobre la programación para red con Lazarus. No soy un experto en la programación para redes y agregaré al artículo todo lo  queaprendo sobre esta cuestión. Invito a otros a que ayuden a crear artículos sobre trabajo en redes. Agregue un enlace en la sección siguiente, agregue una página y cree su propio artículo de WiKi. En esta página se dará información de carácter general .  
+
   Esta página será el comienzo para las tutorias sobre la programación para red con Lazarus. No soy un experto en la programación para redes y agregaré al artículo todo lo  queaprendo sobre esta cuestión. Invito a otros a que ayuden a crear artículos sobre trabajo en redes. Agregue un enlace en la sección siguiente, agregue una página y cree su propio artículo de WiKi. En esta página se dará información de carácter general .  
  
 
__TOC__
 
__TOC__
Line 9: Line 9:
  
 
* [[Secure programming | Programación segura]]  
 
* [[Secure programming | Programación segura]]  
* [[Sockets]] - Componentes sobre '''TCP/IP Sockets'''
+
* [[Sockets|Componentes sobre ''TCP/IP Sockets'']]
* [[lNet]] - Lightweight Networking Components
+
* [[lNet]] - Componentes ligeros para trabajo en red
* [[XML Tutorial]] - XML is often utilized on network communications
+
* [[XML Tutorial]|Tutoría XML] - XML se utiliza frecuentemente en comunicaciones en la red
* [[FPC and Apache Modules]]
+
* [[FPC and Apache Modules|FPC y módulos Apache]]
  
== TCP/IP Protocol ==
+
== Protocolo TCP/IP ==
  
=== Webserver example ===
+
=== Ejemplo de Servidor Web ===
  
Bellow there is an example http server written with Synapse and tested in Mac OS X, after changing the synapse source to use a fixed constant $20000 as MSG_NOSIGNAL, because this constant isn't present in the sockets unit in Mac OS X.
+
   El código que sigue es un ejemplo de servidor http escrito con Synapse y probado en Mac OS X, después de cambiar los fuentes de Synapse para utilizar una constante fija $20000 como MSG_NOSIGNAL, porque esta constante no estaba presente en la unidades 'Sockets' para Mac OS X.
  
<delphi>
+
<syntaxhighlight lang=pascal>
 
{
 
{
 
   The Micro Pascal WebServer
 
   The Micro Pascal WebServer
Line 126: Line 126:
 
   ConnectionSocket.Free;
 
   ConnectionSocket.Free;
 
end.
 
end.
</delphi>
+
</syntaxhighlight>
  
== WebServices ==
+
== Servicos ''web'' (''WebServices'') ==
  
According to the [http://www.w3.org/ W3C] a Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface that is described in a machine-processable format such as WSDL. Other systems interact with the Web service in a manner prescribed by its interface using messages, which may be enclosed in a SOAP envelope, or follow a REST approach. These messages are typically conveyed using HTTP, and are normally comprised of XML in conjunction with other Web-related standards. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. This interoperability (e.g., between Windows and Linux applications) is due to the use of open standards. OASIS and the W3C are the primary committees responsible for the architecture and standardization of web services. To improve interoperability between web service implementations, the WS-I organisation has been developing a series of profiles to further define the standards involved.
+
&nbsp;&nbsp;&nbsp;Según el [http://www.w3.org/ W3C] un '''servicio ''web''''' es un sistema software diseñado para dar soporte a la operación interactiva entre máquinas a través de una red. Cuenta con un interfaz que está descrito en un formato procesable por una máquina  que es WSDL. Otros sistemas interactuan con el servicio ''web'' de la forma descrita en la interfaz utilizando mensajes, que irán dentro de ''sobres'' [http://es.wikipedia.org/wiki/SOAP SOAP], o siguiendo un acercamiento [http://es.wikipedia.org/wiki/Representational_State_Transfer REST]. Los mensajes se transportan típicamente usando HTTP, y se componen normalmente de XML junto con otros estándares ''web'' relacionados. Aplicaciones informáticas escritas en distintos lenguajes de programación y funcionando en plataformas diversas pueden utilizar servicios ''web'' para intercambiar datos sobre las redes de ordenadores, como Internet ,de una forma similar a la comunicación entre procesos sobre un único ordenador. Esta interoperabilidad (v.g., entre aplicaciones Windows y Linux) es posible debido al uso de estándares abiertos. [http://es.wikipedia.org/wiki/OASIS_(organización) OASIS] y [http://www.w3.org/ W3C] son los comités más importantes responsables de la arquitectura y de la estandardización de los servicios de red. Para mejorar la interoperabilidad entre las implementaciones de servicios de red, la organización [http://es.wikipedia.org/wiki/WS-I WS-I] está desarrollando una serie de perfiles para definir mejor los estándares implicados.
  
 
=== Web Service Toolkit for FPC & Lazarus ===
 
=== Web Service Toolkit for FPC & Lazarus ===
[[Web Service Toolkit]] is a web services package for FPC and Lazarus.
+
&nbsp;&nbsp;&nbsp; [[Web Service Toolkit]] es un paquete de herramientas para servicios ''web'' para FPC y Lazarus.
  
----
+
=== Ver también ===
[[XML Tutorial]]
+
&nbsp;&nbsp;&nbsp; [[XML Tutorial/es]]
  
 
== External Links ==
 
== External Links ==

Revision as of 09:07, 21 February 2020

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko) polski (pl) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN)

Trabajando en RED

   Esta página será el comienzo para las tutorias sobre la programación para red con Lazarus. No soy un experto en la programación para redes y agregaré al artículo todo lo queaprendo sobre esta cuestión. Invito a otros a que ayuden a crear artículos sobre trabajo en redes. Agregue un enlace en la sección siguiente, agregue una página y cree su propio artículo de WiKi. En esta página se dará información de carácter general .

Otras tutorías sobre trabajo en redes

Protocolo TCP/IP

Ejemplo de Servidor Web

   El código que sigue es un ejemplo de servidor http escrito con Synapse y probado en Mac OS X, después de cambiar los fuentes de Synapse para utilizar una constante fija $20000 como MSG_NOSIGNAL, porque esta constante no estaba presente en la unidades 'Sockets' para Mac OS X.

{
  The Micro Pascal WebServer

  This is a very simple example webserver implemented with the Synapse library.

  It works with blocking sockets and a single thread, so it
  can only handle one request at a given time.

  It will write the headers that it receives from the browser
  to the standard output.

  It serves a fixed webpage for the / URI
  For any other URI it will return 504 not found
}
program upserver;

{$ifdef fpc}
  {$mode delphi}
{$endif}

{$apptype console}

uses
  Classes, blcksock, sockets, Synautil, SysUtils;

{@@
  Attends a connection. Reads the headers and gives an
  appropriate response
}
procedure AttendConnection(ASocket: TTCPBlockSocket);
var
  timeout: integer;
  s: string;
  method, uri, protocol: string;
  OutputDataString: string;
  ResultCode: integer;
begin
  timeout := 120000;

  WriteLn('Received headers+document from browser:');

  //read request line
  s := ASocket.RecvString(timeout);
  WriteLn(s);
  method := fetch(s, ' ');
  uri := fetch(s, ' ');
  protocol := fetch(s, ' ');

  //read request headers
  repeat
    s := ASocket.RecvString(Timeout);
    WriteLn(s);
  until s = '';

  // Now write the document to the output stream

  if uri = '/' then
  begin
    // Write the output document to the stream
    OutputDataString :=
      '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"'
      + ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' + CRLF
      + '<html><h1>Teste</h1></html>' + CRLF;

    // Write the headers back to the client
    ASocket.SendString('HTTP/1.0 200' + CRLF);
    ASocket.SendString('Content-type: Text/Html' + CRLF);
    ASocket.SendString('Content-length: ' + IntTostr(Length(OutputDataString)) + CRLF);
    ASocket.SendString('Connection: close' + CRLF);
    ASocket.SendString('Date: ' + Rfc822DateTime(now) + CRLF);
    ASocket.SendString('Server: Servidor do Felipe usando Synapse' + CRLF);
    ASocket.SendString('' + CRLF);

  //  if ASocket.lasterror <> 0 then HandleError;

    // Write the document back to the browser
    ASocket.SendString(OutputDataString);
  end
  else
    ASocket.SendString('HTTP/1.0 504' + CRLF);
end;

var
  ListenerSocket, ConnectionSocket: TTCPBlockSocket;
begin
  ListenerSocket := TTCPBlockSocket.Create;
  ConnectionSocket := TTCPBlockSocket.Create;

  ListenerSocket.CreateSocket;
  ListenerSocket.setLinger(true,10);
  ListenerSocket.bind('0.0.0.0','1500');
  ListenerSocket.listen;

  repeat
    if ListenerSocket.canread(1000) then
    begin
      ConnectionSocket.Socket := ListenerSocket.accept;
      WriteLn('Attending Connection. Error code (0=Success): ', ConnectionSocket.lasterror);
      AttendConnection(ConnectionSocket);
    end;
  until false;

  ListenerSocket.Free;
  ConnectionSocket.Free;
end.

Servicos web (WebServices)

   Según el W3C un servicio web es un sistema software diseñado para dar soporte a la operación interactiva entre máquinas a través de una red. Cuenta con un interfaz que está descrito en un formato procesable por una máquina que es WSDL. Otros sistemas interactuan con el servicio web de la forma descrita en la interfaz utilizando mensajes, que irán dentro de sobres SOAP, o siguiendo un acercamiento REST. Los mensajes se transportan típicamente usando HTTP, y se componen normalmente de XML junto con otros estándares web relacionados. Aplicaciones informáticas escritas en distintos lenguajes de programación y funcionando en plataformas diversas pueden utilizar servicios web para intercambiar datos sobre las redes de ordenadores, como Internet ,de una forma similar a la comunicación entre procesos sobre un único ordenador. Esta interoperabilidad (v.g., entre aplicaciones Windows y Linux) es posible debido al uso de estándares abiertos. OASIS y W3C son los comités más importantes responsables de la arquitectura y de la estandardización de los servicios de red. Para mejorar la interoperabilidad entre las implementaciones de servicios de red, la organización WS-I está desarrollando una serie de perfiles para definir mejor los estándares implicados.

Web Service Toolkit for FPC & Lazarus

    Web Service Toolkit es un paquete de herramientas para servicios web para FPC y Lazarus.

Ver también

    XML Tutorial/es

External Links