Interprocess Communication Bibliothek (IPC)
für Windows x86, x64

Schnelle IPC Kommunikation zwischen Prozessen einfach gelöst.

Version 2

Interprocess Kommunication Bibliothek für Windows x86 und x64. Visual C++, .Net, VB .Net, C#, Delphi, Visual Basic, VB6, Visual Studio. Windows 32 und 64 bit (x86, x64).

Einführung

Interprocess Kommunikation (IPC) ermöglicht Anwendungen die gemeinsame nutzung von Daten. Ein direkter Zugriff auf den privaten Speicher von Anwendungen wird durch das Betriebssystem eingeschrägt. Anwendungen teilen sich, in der Regel, Daten durch übergabe von Dateien. Ein verlässlicher und einfacher Weg aber ineffizient, da recht langsam. Ein schnellerer Weg, für die gemeinsame Nutzung von Daten, ist der Zugriff in Echtzeit darauf. Interprocess Kommunikation ist der schnellste Weg um den Zugriff in Echtzeit zu realisieren.

ADONTEC's Interprocess Communication Bibliothek (ADIPC) ist eine Bibliothek für die schnelle Kommunikation zwischen Prozessen (Anwendungen). Die hier beschriebene Bibliothek ermöglicht einen schnellen Datenaustausch zwischen Prozessen bei niedrigen CPU Verbrauch und kurzer Reaktionszeit.

Einfache und schnelle Ausstatung der Anwendung mit Interprocess Communication Merkmale. Diese Bibliothek ermöglicht Ihre Software-Anwendungen, mit nur wenigen Zeilen Code, einen schnellen Datenaustausch auszurüsten.

Einfach einen Namen für die Verbindung bekannt geben und schnell Daten zwischen Prozessen austauschen.

Ereignisgesteuert

Der Datenaustausch ist Ereignisgesteuert. Die Anwendung(en) senden und empfangen die Daten transparent im Hintergrund. Die Anwendung(en) agieren auf die Datenkommunikation bei Bedarf. Kein lästiges Warten, kein Blockieren der GUI !

Der hierbei genutzte Ereignisgesteuerte Ansatz eliminiert nahezu den Bedarf an Threads, auch wenn diese Bibliothek in Multithreaded Anwendungen uneingeschränkt, benutzt werden kann. Dadurch entfernt, diese Bibliothek, komplexe Maßnahmen aus der Anwendung, erleichtert den Entwicklungsprozeß und beschleunigt die Ausführung.

Binäre Daten oder komplexe Strukturen übertragen ?

Die ADONTEC's Interprocess Communication Library (IPC) setzt keine Beschränkungen auf den Datentyp der, zwischen den Anwendungen, zu übertragenen Daten.

Server, Klient oder beides?

Die Anwendung kann als Server oder Klient oder auch als beides agieren. Ein Klient kann eine Funktion oder Diensleistung vom Server abfragen. Ein Server antwortet auf Klientnanfragen.

Diese Bibliothek ermöglicht Klient-zu-Server, Server-für-viele-Klienten und Klient-zu-viele-Server Kommunikation (Verbindungen).

Ein Server macht den Dienstnamen (pier) für die angebotene Dienste bekannt und Klienten verbinden daran. Ein leicht überschaubares Konzept und einfach zu integrieren. Sehr wenig neuer Code wird benötigt. Wenn jedoch ein etwas koplexeres Datenkommunikationsprotokoll benötigt wird, wiedet dieses API was dafür notwendig ist. Beispiele demonstrieren es.

Eine oder mehrere IPC Verbindungen

Es können eine oder mehrere gleichzeitige IPC Verbindungen aufgebaut werden. Ein Server kann mehrere Klienten gleichzeitig dienen und ein Klient kann zu mehreren Servern verbindungen aufbauen. Ein Server kann auch Verbindungen zu anderen Servern (wie ein Klient) aufbauen.

Geringer CPU Verbrauch

Der benutzte "Low Latency" Algorithmus reduziert den Verbrauch auf ein Minimum und die Anwendung sieht ziemlich untätig (Idle) aus.

Exzellente Reaktionszeiten und Datendurchsatz

Die besondere Schnelligkeit und Leichtigkeit, mit der die Daten ausgetauscht werden, lässt die Anwendung in einem helleren Licht glänzen.

Beispiel

Das folgende Beispiel demonstriert wie Interprocess Daten, unter Nutzung dieser IPC Bibliothek, ausgetauscht werden können. Siehe folgenden Pseudo Code:

Ein Server wartet auf Endpunkt pier1 (logische Adresse)
INT OnIPCEvent(hCon,
               SenderAddress,
               DataSize,
               DataBuffer)
BEGIN
         // Verarbeite Anfrage, sende Antworten
  :
  MySendReply(SenderAddress)
END
  :
         // Eigene logische Adresse (Endpunkt) festlegen
hCon = ADIPC_StartListen("pier1", OnIPCEvent, ..);
         // Ein Server ist jetzt bereit Anfragen über die
         // Ereignis-Funktion OnIPCEvent zu beantworten.

  :      // Regulären Aufgaben im Programm nachgehen ...

         // Wenn fertig, belegte Ressourcen freigeben
ADIPC_StopListen(hCon)   // Beende IPC

 

Server/Klient: Endpunkt pier2 spricht mit pier1
INT OnIPCEvent(hCon,
               SenderAddress,
               DataSize,
               DataBuffer)
BEGIN
         // handle data, transmit reply
  :
  MySendReply(SenderAddress)
END
  :
         // Eigene logische Adresse (Endpunkt) festlegen
hCon = ADIPC_StartListen("pier2", OnIPCEvent, ..);
         // Ein Server ist jetzt bereit Anfragen über die
         // Ereignis-Funktion OnIPCEvent zu beantworten.

         // Ein Klient würde jetzt, wie folgt, eine Verbindung aufbauen:
Repeat   // Warte bis der andere Prozess bereit ist
  Address = ADIPC_QueryRemoteAddress("pier1")
Until (Address < > 0)

ADIPC_SetRemoteAddress(hCon, Address)    // merken

Repeat   // jetzt besteht eine aktive Verbindung und
         // Daten können ausgetauscht werden
  pData = ADIPC_AllocateBuffer(hCon, strlen("Hello"), "Hello");

  ADIPC_SendData(hCon, pData)    // Daten senden

  ADIPC_FreeBuffer(pData)        // Puffer freigeben
Until bDone
  :
         // Wenn fertig, belegte Ressourcen freigeben
ADIPC_StopListen(hCon)  // Beende IPC

Der Endpunkt definiert die eine Seite der virtuellen Verbindung und ist die logische Adresse auf der ein Prozess Daten empfangen kann. Die virtuelle Verbindung besteht aus zwei Endpunkten, eins auf jeder Seite.
ADIPC_StartListen und ADIPC_StopListen können jederzeit aufgerufen werden, bevorzugt beim Start des Programms (Create) und bei Beenden (Close).

Grenzenlos

Diese Interprozess Kommunikations Bibliothek (IPC) setzt kein Grenzen bezüglich Anzahl der Interprocess Communication (IPC) Verbindungen, die eine Anwendung herstellen oder bedienen kann. Die verfügbaren System-Resourcen setzen die Grenze.

64 Bit Application (x64)

ADONTEC's Interprocess Communication Bibliothek (IPC) untersützt 64 Bit Anwendungen und emöglicht Anwendungen mit unterschiedlichem CPU Modus (32, 64 Bit) untereinander zu kommunizieren.

Jede der folgenden Kombinationen ist möglich:
32 Bit «---------» 32 Bit
64 Bit «---------» 64 Bit
32 Bit «---------» 64 Bit
64 Bit «---------» 32 Bit

Bestens Informiert

Sobald Daten anliegen werden diese per Ereignis gemeldet.
Zu jedem Zeitpunkt ist es feststellbar ob die Gegenstation noch verfügbar ist. "Geht sie weg" wird es die Anwendung erfahren.

Zusammenfassung

Wenn Sie nach einer schnellen, einfach zu handhaben und stabilen Interprocess Communication Bibliothek suchen, dann sind Sie hier fündig geworden. Die ADONTEC's Interprocess Communication Bibliothek erhöht die Produktivität und stabilität der Anwendung. Eine ausgereifte, äußerst optimierte und gut dokumentierte IPC Komponente.

Die ADONTEC's Interprocess Communication Bibliothek ist eine schnelle und portable Lösung für unterschiedliche Windows Versionen und Compiler.

Beispiele
für bekannte Compiler (z.B. C/C++, C#, Delphi, Pascal, Visual Basic, VB net) sind enthalten.
Dieses Dokument demonstriert unterschiedliche Beispiele, die miteinander Daten austauschen und in diesem Produkt enthalten sind (32 und 64 Bit).

Kostenlose Technische Unterstützung
für registrierte Nutzer ist enthalten.

Unterstützte Compiler
C#, C/C++, Delphi inkl. CodeGear & Embarcadero RAD, RAD Studio 10, Delphi 10 Berlin & Tokyo, Free Pascal / Lazarus, Microsoft C/C++, Microsoft Visual C++, MinGW, .NET, Pascal, Visual Basic .NET, Visual Studio 5, Visual Studio 6 (VC6), Visual Studio 2003, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, Visual Studio 2015, Visual Studio 2017, Visual Studio 2019, Visual Studio 2022.

Lizenzbedingungen Lizenzbedingungen
Kurzfassung: Anwendungen, die mit dieser Bibliothek entwickelt werden, können frei weitergegeben werden.

 

Ein mächtiges und doch einfach zu nutzendes API. Schnell in der Integration und schnelle Ausführung.

 


Home    Back
Modified at:

Software und ActiveX Daten Kommunikation Komponenten und Bibliotheken
It Simply Works!