Red de conocimiento informático - Conocimiento del nombre de dominio - Varios métodos de comunicación entre aplicacionesEl intercambio de datos (comunicación mutua) entre aplicaciones siempre ha sido un problema que preocupa a los programadores. Si bien existen varias soluciones, ninguna de ellas es perfecta hasta el momento. Por lo tanto, sólo aprendiendo y entendiendo sus ventajas y desventajas podremos elegir la mejor solución en circunstancias específicas para cumplir con los requisitos finales. 1. * * * Disfrute creando un archivo en el disco duro, una aplicación escribe datos en el archivo (sin cerrar el archivo, pero se debe vaciar el búfer) y otra aplicación abre el archivo y lee su contenido * * *, lo cual es la forma más sencilla de intercambiar datos. Para los usuarios de la red, siempre que ambos terminales tengan Win311 para trabajo en grupo o Windows 95 (o NT) instalado, siempre que el directorio esté configurado y asignado a una unidad de red, el intercambio de datos se puede lograr de forma sencilla. Pero sus deficiencias también son obvias: los datos más recientes solo se pueden obtener mediante sondeo (baja eficiencia) y el controlador de mapeo de red nunca se puede cambiar ni cancelar (poca confiabilidad), por lo que este es un método de comunicación de "bajo nivel". 2. DDE Todo programador de Windows está familiarizado con DDE (Dynamic Data Exchange). Es el método de intercambio de datos más antiguo basado en Windows. Hay tres métodos para elegir: conexión en frío, conexión en caliente y conexión en caliente. Generalmente, cuando un cliente envía una solicitud de conexión a un servidor, debe especificar el nombre y título del servidor. Una vez que se establece una conexión, los datos pueden fluir en ambas direcciones. Un ejemplo clásico es SnagIt, que proporciona una interfaz DDE y permite que otras aplicaciones la controlen. DDE es totalmente compatible con versiones anteriores desde plataformas de 16 bits hasta plataformas de 32 bits casi sin modificaciones del código fuente. DDE también tiene capacidades de red. Las personas que han utilizado Win311 For Workgroup probablemente recuerden que venía con un pequeño programa muy atractivo "Chat", que permitía a dos ordenadores hablar en tiempo real a través de la red, lo que era casi un trabajo pionero en su momento. Pero pocas personas saben que "Chat" utiliza un DDE especial, NetDDE. Su principio de funcionamiento básico sigue siendo DDE, pero permite que una computadora envíe mensajes a otra terminal en la misma red, a diferencia del DDE ordinario que solo puede limitarse a la misma máquina. En comparación con otros métodos de intercambio de datos, DDE no es lo suficientemente avanzado y Microsoft ya no admite activamente DDE, por lo que sus perspectivas no son optimistas. 3. WM_COPYDATA Mensaje de Windows WM_COPYDATA es poderoso, pero pocas personas lo saben. Su definición exacta es: un mensaje enviado cuando una aplicación pasa datos a otra aplicación. Como todos sabemos, Windows depende en gran medida del mecanismo de mensajería, entonces, ¿por qué no enviamos datos juntos en mensajes? De esta manera, siempre que llamemos a SendMessage() con el identificador del formulario de la otra parte como primer parámetro y la dirección de la estructura de puntero que contiene los datos reales como segundo parámetro, podemos enviar el bloque de datos completo como un mensaje. a otra aplicación. Quizás algunos programadores digan que los mensajes personalizados también pueden hacer el trabajo. Sólo tenía razón a medias. De hecho, se pueden enviar mensajes personalizados a otras aplicaciones, pero el área de memoria donde residen los datos originales solo es válida durante el proceso de envío. Si se accede a esta área de memoria en otros módulos, se producirá una "violación de acceso". Usando WM_COPYDATA no tienes este problema porque Windows mismo lo maneja todo por ti. Profundizando, encontrará que en realidad crea un objeto de mapeo de archivos, primero copia los datos originales del remitente en el archivo de mapeo y luego abre una "vista" del archivo de mapeo en el lado receptor. La desventaja de WM_COPYDATA es que debe haber un formulario para recibir mensajes y datos (falta de flexibilidad) y los datos deben copiarse en un archivo de mapeo antes de usarlos (un desperdicio de recursos). 4. Desde la década de 1980, NetBIOS ha sido la interfaz estándar para desarrollar programas cliente/servidor. En ese momento, casi todas las demás soluciones se desarrollaron a partir de sistemas UNIX. Por supuesto, NetBIOS no es la única opción para los usuarios actuales y pueden elegir entre varias opciones.

Varios métodos de comunicación entre aplicacionesEl intercambio de datos (comunicación mutua) entre aplicaciones siempre ha sido un problema que preocupa a los programadores. Si bien existen varias soluciones, ninguna de ellas es perfecta hasta el momento. Por lo tanto, sólo aprendiendo y entendiendo sus ventajas y desventajas podremos elegir la mejor solución en circunstancias específicas para cumplir con los requisitos finales. 1. * * * Disfrute creando un archivo en el disco duro, una aplicación escribe datos en el archivo (sin cerrar el archivo, pero se debe vaciar el búfer) y otra aplicación abre el archivo y lee su contenido * * *, lo cual es la forma más sencilla de intercambiar datos. Para los usuarios de la red, siempre que ambos terminales tengan Win311 para trabajo en grupo o Windows 95 (o NT) instalado, siempre que el directorio esté configurado y asignado a una unidad de red, el intercambio de datos se puede lograr de forma sencilla. Pero sus deficiencias también son obvias: los datos más recientes solo se pueden obtener mediante sondeo (baja eficiencia) y el controlador de mapeo de red nunca se puede cambiar ni cancelar (poca confiabilidad), por lo que este es un método de comunicación de "bajo nivel". 2. DDE Todo programador de Windows está familiarizado con DDE (Dynamic Data Exchange). Es el método de intercambio de datos más antiguo basado en Windows. Hay tres métodos para elegir: conexión en frío, conexión en caliente y conexión en caliente. Generalmente, cuando un cliente envía una solicitud de conexión a un servidor, debe especificar el nombre y título del servidor. Una vez que se establece una conexión, los datos pueden fluir en ambas direcciones. Un ejemplo clásico es SnagIt, que proporciona una interfaz DDE y permite que otras aplicaciones la controlen. DDE es totalmente compatible con versiones anteriores desde plataformas de 16 bits hasta plataformas de 32 bits casi sin modificaciones del código fuente. DDE también tiene capacidades de red. Las personas que han utilizado Win311 For Workgroup probablemente recuerden que venía con un pequeño programa muy atractivo "Chat", que permitía a dos ordenadores hablar en tiempo real a través de la red, lo que era casi un trabajo pionero en su momento. Pero pocas personas saben que "Chat" utiliza un DDE especial, NetDDE. Su principio de funcionamiento básico sigue siendo DDE, pero permite que una computadora envíe mensajes a otra terminal en la misma red, a diferencia del DDE ordinario que solo puede limitarse a la misma máquina. En comparación con otros métodos de intercambio de datos, DDE no es lo suficientemente avanzado y Microsoft ya no admite activamente DDE, por lo que sus perspectivas no son optimistas. 3. WM_COPYDATA Mensaje de Windows WM_COPYDATA es poderoso, pero pocas personas lo saben. Su definición exacta es: un mensaje enviado cuando una aplicación pasa datos a otra aplicación. Como todos sabemos, Windows depende en gran medida del mecanismo de mensajería, entonces, ¿por qué no enviamos datos juntos en mensajes? De esta manera, siempre que llamemos a SendMessage() con el identificador del formulario de la otra parte como primer parámetro y la dirección de la estructura de puntero que contiene los datos reales como segundo parámetro, podemos enviar el bloque de datos completo como un mensaje. a otra aplicación. Quizás algunos programadores digan que los mensajes personalizados también pueden hacer el trabajo. Sólo tenía razón a medias. De hecho, se pueden enviar mensajes personalizados a otras aplicaciones, pero el área de memoria donde residen los datos originales solo es válida durante el proceso de envío. Si se accede a esta área de memoria en otros módulos, se producirá una "violación de acceso". Usando WM_COPYDATA no tienes este problema porque Windows mismo lo maneja todo por ti. Profundizando, encontrará que en realidad crea un objeto de mapeo de archivos, primero copia los datos originales del remitente en el archivo de mapeo y luego abre una "vista" del archivo de mapeo en el lado receptor. La desventaja de WM_COPYDATA es que debe haber un formulario para recibir mensajes y datos (falta de flexibilidad) y los datos deben copiarse en un archivo de mapeo antes de usarlos (un desperdicio de recursos). 4. Desde la década de 1980, NetBIOS ha sido la interfaz estándar para desarrollar programas cliente/servidor. En ese momento, casi todas las demás soluciones se desarrollaron a partir de sistemas UNIX. Por supuesto, NetBIOS no es la única opción para los usuarios actuales y pueden elegir entre varias opciones.

En las plataformas Windows 95 y NT, las funciones de Netbios se pueden llamar a través de la función API NetBIOS(). NetBIOS es compatible con los siguientes protocolos de bajo nivel: protocolo NetBEUI (NBF), NWLink NetBIOS (NWNBlink) y NetBIOS sobre TCP/IP (NetBT). La ventaja de NetBIOS es su alta velocidad, pero la desventaja es su poca confiabilidad. 5. Los sockets estándar y WinSockSockets se propusieron en los sistemas UNIX hace 15 años. Inicialmente, se utilizaron principalmente para comunicaciones locales, pero pronto encontraron su camino en los sistemas cliente/servidor. Su núcleo es simple: puede pensar en un Socket como un nodo bidireccional a través del cual una aplicación puede primero establecer una conexión con otro programa (en el extremo mutuamente reconocido para distinguir varios subprocesos de comunicación que se ejecutan al mismo tiempo) y luego comunicarse entre sí. otros. En base a esto, Microsoft creó WinSock, específicamente para la interfaz de Windows y totalmente compatible con Socket. En los últimos años, las redes basadas en el protocolo TCP/IP se han vuelto populares y Socket se ha utilizado cada vez más. Los sockets ahora se utilizan ampliamente en Internet, principalmente debido a su portabilidad: las aplicaciones de socket pueden comunicarse entre sí en cualquier plataforma, ya sea PC o Macintosh, ya sea Windows o UNIX. El último WinSock 2.0 no sólo se basa en el protocolo TCP/IP, sino también en varios otros protocolos de transporte (como IPX). La desventaja de Socket es que funciona en la base de la comunicación, por lo que es más complicado de implementar (si es una plataforma Win 95 o nt, este problema no existe, Microsoft proporciona los controles correspondientes). Sin embargo, si desea comunicarse entre sí entre múltiples plataformas, Socket es la mejor opción. 6.Mailslot y PipeMailslot y Pipe tienen muchas similitudes, es decir, son sistemas de comunicación de alto nivel y basados ​​en memoria. La ranura de correo la crea el servidor, el código es el siguiente: my Mailslot = create Mailslot(PS lotname, 0, Mailslot_wait_forever, null luego, el cliente puede abrir esta ranura de correo como un archivo y luego usar la función API); WriteFile() Escribe datos en la cola de mensajes. De manera similar, la tubería también la crea el servidor, el código es el siguiente: pipe = createnamedpipe (ppipeneme, pipe_access_duplex, Pipe_type_message | Pipe_read mode_message | Pipe_wait, pipe_unlimited_instances, bufsize, bufsize, 20000. Luego, el cliente puede leer y escribir datos a través Para la API de archivos general, el código es el siguiente: pipe = create file(ppipenem,generic_read|generic_write,0,null,open_existing,0,null);success =WriteFile (pipe, pMessage, strlen(p message) 1; bytesWritten, NULL); Hay dos tipos de canalizaciones, canalizaciones con nombre y canalizaciones anónimas. Las canalizaciones anónimas se identifican mediante identificadores en lugar de nombres, lo que las limita únicamente a la misma máquina y no se pueden aplicar a la red. por nombre, por lo que se puede abrir en cualquier otro lugar de la red. Es importante tener en cuenta que las canalizaciones con nombre sólo se pueden crear en Win NT y no en Win 95 (es decir, en el lado del servidor, las canalizaciones del cliente pueden ser de cualquier plataforma). comunicarse unidireccional o bidireccional, mientras que las ranuras de correo solo pueden comunicarse unidireccionalmente.