Escribir aplicaciones compatibles con la red con Delphi

De todos los componentes que Delphi proporciona para admitir aplicaciones que intercambian datos a través de una red (internet, intranet y local), dos de los más comunes son TServerSocket y TClientSocket, ambos diseñados para admitir funciones de lectura y escritura a través de una conexión TCP / IP.

Componentes Winsock y Delphi Socket

Windows Sockets (Winsock) proporciona una interfaz abierta para la programación de red en el sistema operativo Windows. Ofrece un conjunto de funciones, estructuras de datos y parámetros relacionados necesarios para acceder a los servicios de red de cualquier pila de protocolos. Winsock actúa como un enlace entre las aplicaciones de red y las pilas de protocolos subyacentes..

Los componentes de socket Delphi (envoltorios para Winsock) simplifican la creación de aplicaciones que se comunican con otros sistemas mediante TCP / IP y protocolos relacionados. Con los sockets, puede leer y escribir sobre conexiones a otras máquinas sin preocuparse por los detalles del software de red subyacente..

La paleta de Internet en la barra de herramientas de componentes de Delphi aloja el TServerSocket y TClientSocket componentes así como TcpClient, TcpServer, y TUdpSocket.

Para iniciar una conexión de socket utilizando un componente de socket, debe especificar un host y un puerto. En general, anfitrión especifica un alias para la dirección IP del sistema del servidor; Puerto especifica el número de ID que identifica la conexión del socket del servidor.

Un programa simple de una vía para enviar texto

Para crear un ejemplo simple utilizando los componentes de socket proporcionados por Delphi, cree dos formularios: uno para el servidor y otro para la computadora cliente. La idea es permitir que los clientes envíen algunos datos textuales al servidor.

Para comenzar, abra Delphi dos veces, creando un proyecto para la aplicación del servidor y otro para el cliente.

Lado del servidor:

En un formulario, inserte un componente TServerSocket y un componente TMemo. En el evento OnCreate para el formulario, agregue el siguiente código:

procedimiento TForm1.FormCreate (Remitente: TObject);
empezar
ServerSocket1.Port: = 23;
ServerSocket1.Active: = True;
final;

El evento OnClose debe contener:

procedimiento TForm1.FormClose
(Remitente: TObject; var Acción: TCloseAction);
empezar
ServerSocket1.Active: = false;
final;

Lado del cliente:

Para la aplicación cliente, agregue un componente TClientSocket, TEdit y TButton a un formulario. Inserte el siguiente código para el cliente:

procedimiento TForm1.FormCreate (Remitente: TObject);
empezar
ClientSocket1.Port: = 23;
// dirección TCP / IP local del servidor
ClientSocket1.Host: = '192.168.167.12';
ClientSocket1.Active: = verdadero;
final;
procedimiento TForm1.FormClose (Remitente: TObject; var Acción: TCloseAction);
empezar
ClientSocket1.Active: = false;
final;
procedimiento TForm1.Button1Click (Remitente: TObject);
comenzar ClientSocket1.Active luego
ClientSocket1.Socket.SendText (Edit1.Text);
final;

El código se describe a sí mismo: cuando un cliente hace clic en un botón, el texto especificado dentro del componente Edit1 se enviará al servidor con el puerto y la dirección de host especificados.