Tal vez le hayan impresionado las potentes funciones y la tecnología avanzada del software de aplicación de Internet, como el navegador IE de Microsoft. Tal vez aún no sea capaz de desarrollar un sistema tan complejo a gran escala, pero no se preocupe, aquí podemos darle una oportunidad. Para practicar, es aprender a usar Winsocket de Delphi para escribir aplicaciones basadas en TCP/ip. Se supone que ya está familiarizado con las herramientas de desarrollo de Delphi.
Podemos imaginar que si escribe un programa para comunicarse con una computadora remota desde el principio, debe tener un amplio conocimiento y dominio de los protocolos de red relevantes, el conocimiento subyacente del sistema y la tecnología de software y hardware de red. Sólo se puede lograr en un corto período de tiempo. No es una tarea fácil para la mayoría de las personas.
Afortunadamente, la biblioteca de componentes de red de Delphi nos proporciona componentes para implementar la comunicación de red, que encapsulan los complejos detalles de implementación. Los componentes ClientSocket y ServerSocket nos permiten escribir fácilmente nuestros propios programas de comunicación de red y uso compartido de recursos.
Los pasos para escribir programas Winsocket en Delphi 4.0 son los siguientes:
1) Configuración de propiedades del componente Winsocket;
2) Establecer una conexión con la computadora remota;
3) Transmisión de datos entre computadoras;
Estos tres pasos se explican en detalle a continuación.
uno. Configuración de propiedades de Winsocket
En Delphi 4.0, Winsocket se subdivide en dos componentes: ClientSocket y ServerSocket. Sirven como componentes del lado del cliente y del servidor respectivamente. Es decir, el componente ClientSocket se usa en el programa cliente y el componente ServerSocket se usa en el lado del servidor. A través de la comunicación entre estos dos componentes, junto con el código de aplicación auxiliar, se puede implementar un programa de comunicación simple. Por supuesto, si se introduce ServerSocket en el programa cliente, el programa cliente puede actuar como un servidor y responder a solicitudes de otros programas cliente.
Si está escribiendo un programa del lado del servidor, debe establecer la propiedad Puerto del componente ServerSocket. La razón por la que se establece este parámetro es porque puede haber varios programas de servidor ejecutándose en la misma computadora y es posible que estén aceptando constantemente solicitudes de conexión de programas de clientes remotos. Si está intentando enviar un correo electrónico y el sistema conecta su solicitud a otro programa de servidor, su correo electrónico definitivamente no se enviará correctamente. Por lo tanto, se debe configurar un número de puerto adecuado para el componente ServerSocket en el programa del servidor. También puede configurar el atributo Servicio, que indica el tipo de servicio proporcionado por ServerSocket, como: FTP, HTTP, etc. Luego establezca la propiedad Activa en Verdadero.
Si está escribiendo un programa cliente, hay más propiedades para configurar el componente ClientServer. El atributo Puerto debe configurarse para que sea coherente con el valor del atributo Puerto en el lado del servidor. Además, la propiedad Host debe estar configurada correctamente. Es una propiedad de solo lectura y no está disponible en tiempo de diseño. Indica el nombre de host del servidor remoto al que el programa cliente quiere conectarse. También puede configurar el atributo Dirección, que es la dirección IP del host remoto. Si se configuran ambos atributos, el sistema utilizará el atributo Host y la dirección IP establecida por el atributo Dirección dejará de ser válida.
dos. Establecer una conexión a una computadora remota
Para transferir datos entre sistemas informáticos remotos, primero se debe establecer una conexión entre los dos hosts que se comunican.
El componente ServerSocket en el lado del servidor llama al método Open para inicializar la conexión de Socket. Al mismo tiempo, establece el atributo Active en True, establece el componente ServerSocket en modo de escucha y detecta si hay una solicitud de conexión en cualquier momento.
Si el servidor acepta la solicitud de conexión del programa cliente, se activa el evento OnAccept. El siguiente código es lo que el programa servidor debe hacer después de aceptar la conexión.
Procedimiento Miformulario..ServerSocketAccept(Remitente: TObject, Socket: TCustomWinSocket);
comenzar
IsServer := Verdadero;
fin;
En el programa cliente, el componente ClientSocket establece las propiedades necesarias, como Puerto y Host, y luego establece la propiedad Activa en Verdadero para realizar una solicitud de conexión.
tres. Transferencia de datos entre computadoras.
Una vez que el servidor acepta la solicitud de conexión del cliente, el cliente puede enviar datos. En este momento, hay un Socket entre el cliente y el servidor, y la comunicación se logra a través de este Socket. Por lo tanto, el atributo Socket es muy importante y tiene muchos métodos. Utilice algunos métodos simples para enviar y recibir datos.
El lado del cliente utiliza el siguiente formulario: ClientSocket1.socket.sendtext('cadena que desea enviar');
En el lado del servidor, toma la siguiente forma: ServerSocket1.socket.recievetext(str: string) Esta función devuelve la longitud de la cadena recibida y almacena la cadena en la variable str;
Lo anterior es el ejemplo más simple de transmisión de datos. También puede utilizar otros métodos proporcionados por la propiedad Socket para implementar una transmisión de datos compleja.
Aunque es muy conveniente utilizar el componente Winsocket en Delphi 4.0, si desea dominarlo verdaderamente para desarrollar aplicaciones de red, debe leer atentamente sus archivos de ayuda y programas de muestra. Compare las ventajas de este método en el aprendizaje continuo, domine sus funciones de programación y luego domine las habilidades de programación de otros componentes de red proporcionados en Delphi, como: NMPOP3, NMUDP, NMFTP, etc. Para entonces, tendrá la capacidad de participar en el desarrollo de aplicaciones de red reales, en lugar de simplemente tomar el software de aplicaciones de red de otras personas, configurarlo y operarlo con habilidad.