Datenübertragung zwischen Prozessen -> binär?

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
notloesung
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 194
Registriert: Fr, 24. Feb 2006 8:09
Kontaktdaten:

Datenübertragung zwischen Prozessen -> binär?

Beitrag von notloesung »

Ich mal wieder …

Eine allg. Frage zum Thema Datentransfer – fast schon peinlich aber ich weiß es eben nicht (oder habe es vergessen …)

Wenn ich Daten zwischen zwei Prozessen hin und her schicke wie werden diese übertragen?
Das schließt sich eigentlich an den Thread: http://www.xbaseforum.de/viewtopic.php?t=1532 an, passt aber hier besser rein.

Ich meine folgendes:
Prozess A: schicke (über eine Pipe) einen String „HALLO“ an Prozess B. Prozess B erhält dann also das „HALLO“.
Wird das „HALLO“ als solches durch die Pipe geschickt oder kodiert das System es vorher binär? Hier also statt „HALLO“ 01001000 01000001 01001100 01001100 01001111.
Ich frage mich es eben deshalb weil ich mir nicht sicher bin ob ich einfach einen String schicken soll oder vorher diesen selbst binär kodieren soll – nach dem Empfang natürlich wieder dekodieren.

Das ganze soll natürlich dann Geschwindigkeitsvorteile bringen.

Ich gehe mal davon aus, dass es keinen Unterschied ausmacht ob ich die Daten zwischen zwei Prozessen auf einem Rechner oder im Netzwerk schicke – oder?

Gruß,
ich
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

intern kennt der Computer nur BINÄR. Strings sind also immer schon binär codiert und du kannst die locker direkt senden.
Allerdings wird intern meist nur ein Zeiger auf den String benutzt.

Was du eventuell gemeint hast sind Zahlen und deren interne Speicherung:

als String bzw. dezimal "1234" = 4 Byte
als Integer 16/32/64 Bit (gibt es bei Xbase++ nicht)
als Xbase Variable (keine Ahnung wie das intern läuft)

Letzteres wird dann wichtig wenn man Daten mit anderen Programmiersprachen oder dem BS tauschen will, intern kümmert sich Xbase++ um alles.

Oder habe ich die Frage falsch verstanden ?
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,
Ich gehe mal davon aus, dass es keinen Unterschied ausmacht ob ich die Daten zwischen zwei Prozessen auf einem Rechner oder im Netzwerk schicke – oder?
ich habe jetzt den Link mal angesehen. Also bei Named Pipe kannst du Strings sicher direkt senden, andere Datentypen (Xbase zu Xbase) müssen wohl mit den BIN2? oder ?2BIN Befehlen eingepackt werden.
Wenn es auf andere Zielsysteme geht, weiß ich nicht was die erwarten.

Soweit ich es verstanden habe sind Named Pipes aber immer auf einen PC beschränkt. Mit einer InternetBibliothek (ASINET, XB2.NET etc.) könntest du TCPIP Sockets verwenden. Denen ist es egal ob ein Netz dazwischen liegt, solange die längere Laufzeit keine Rolle spielt.
Gruß
Hubert
notloesung
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 194
Registriert: Fr, 24. Feb 2006 8:09
Kontaktdaten:

Beitrag von notloesung »

Guten Morgen,
brandelh hat geschrieben:Oder habe ich die Frage falsch verstanden?
das hast du schon so richtig verstanden - auch wenn ich mich vielleicht etwas umständlich ausgedrückt habe.
brandelh hat geschrieben:Soweit ich es verstanden habe sind Named Pipes aber immer auf einen PC beschränkt.
Das stimmt nicht. Schau mal auf http://de.wikipedia.org/wiki/Named_Pipe#Pipe-Varianten. Auch das Beispiel von Phil Ides kommuniziert miteinander wenn Server und Client auf verschiedenen Rechnern laufen.
brandelh hat geschrieben:Strings sind also immer schon binär codiert und du kannst die locker direkt senden.
Das werde ich jetzt tun.

Gruß,
Notloesung
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jarek,
notloesung hat geschrieben:Auch das Beispiel von Phil Ides kommuniziert miteinander wenn Server und Client auf verschiedenen Rechnern laufen.
aber nur innerhalb eines Subnetzes...
Sobald ein Router im Spiel ist, klappt das nicht.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
notloesung
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 194
Registriert: Fr, 24. Feb 2006 8:09
Kontaktdaten:

Beitrag von notloesung »

Hallo Martin,
Martin Altmann hat geschrieben:aber nur innerhalb eines Subnetzes...
Sobald ein Router im Spiel ist, klappt das nicht.
An dieser Stelle muss ich zugeben, dass ich dieses nicht getestet habe.
Und wenn ich noch etwas zugeben muss, dann dies: es ist mir (zumindest momentan) völlig egal, denn das wofür ich es einsetze läuft alles lokal :lol:.

Gestern habe ich es mir erlaubt mir selbst auf die Schulter zu klopfen. :wink:
Der Grund: Ich habe es hinbekommen, dass unsere Standardsoftware (in der ich mit VBS "programmieren" kann) mit (jeder) meiner Xbase-Anwendungen kommunizieren kann (.exe-Anwendungen). Und das nachdem ich es fast schon aufgegeben hatte ...
Bisher zwar nur in einer Richtung - aber ich habe den Grundstein gelegt.
Das ganze ist zwar noch eine riesige Baustelle aber das wird schon in den kommen Tagen anders aussehen.
... und dieses "Erfolgs"-Erlebnis ist viel stärker, als dass ich mir jetzt Gedanken machen würde das das ganze im Netzwerk nicht "problemlos" laufen könnte. :wink: ... vielleicht später - wenn ich feststelle dass ich es doch im Netz brauche :?:

Gruß,
Notloesung
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

schön dass du es hinbekommen hast und Danke für die Info zu named Pipes, vielleicht brauche ich sie ja auch mal ;-)
Gruß
Hubert
Antworten