Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Zwei Programme miteinander kommunizieren lassen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 566
Wohnort: Jüterbog

BeitragVerfasst am: 28.06.2010, 00:03    Titel: Zwei Programme miteinander kommunizieren lassen Antworten mit Zitat

Ich wollte ursprünglich 2 Instanzen eines Programmes über PIPE mit einander kommunizieren lassen.
grinsen
Jetzt hat sich aber zu meinem Leidwesen herausgestellt das ich eine komplett andere Vorstellung
von PIPE: als Device und seiner Funktionsweise hatte.

Vor einer langen Zeit, mit einem anderen Computer und einem anderen BASIC gab es da folgendes:

Ein Programm öffnet eine Datei "PIPE:a" als output, das andere Programm die selbe Datei als input.
Nun hatte man eine recht einfache Telefonleitung, in einer Richtung...

Gibt es was vergleichbares?
Oder komme ich um einen allozierten Speicherbereich, den beide Programme nutzen, nicht herum?

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 28.06.2010, 00:06    Titel: Antworten mit Zitat

du kannst auch einfach netzwerk-code verwenden. das hat dann den vorteil, dass sowas sowohl lokal als auch im netzwerk funktioniert.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 566
Wohnort: Jüterbog

BeitragVerfasst am: 28.06.2010, 00:17    Titel: Antworten mit Zitat

Hmmm jaaa.... darum wollte ich mich ja eigentlich noch drücken, aber irgendwann hätte es ja eh sein gemusst. lächeln
Ich hab davon ja nun so gar keinen Schimmer, und hatte mir gedacht: Kümmerst dich erstmal um das was übermittelt werden soll und nicht um den Übertragungsweg.
Werd ich wohl mal die Schulbank drücken müssen,
mist, ick hab urlaub*g*

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 28.06.2010, 12:46    Titel: Antworten mit Zitat

wenn du eine bibliothek wie TSNE (forensuche) oder so verwendest, ist das auch nicht viel anders, als wenn du PIPEst... Okay, es heißt dann vielleicht OpenConnection statt Open PIPE oder so, aber das is ja egal. Zunge rausstrecken
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 28.06.2010, 17:46    Titel: Antworten mit Zitat

Mein Battleship (im Projektforum) hat eine relativ leicht strukturierte Netzwerkfunktion basierend auf TSNE. Alle wichtigen Netzwerksubs sind auch gleich am Anfang des Codes. Das könnte dir eventuell helfen schnell einzusteigen.

Der Code dabei ist so ausgelegt, dass jede Instanz sowohl Server als auch Client sein kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 28.06.2010, 18:43    Titel: Antworten mit Zitat

netzwerkcode ist (jedenfalls unter linux, soweit meine Erfahrung) nichts Schlimmes.

der Code zum Connecten ist vielleicht etwas... uneinprägsam, aber sonst...
Zahlen
wenn du allerdings Nicht-Strings übertragen willst: Vorsicht!
wenn die beiden Teile jemals auf unterschiedlichen Rechnerarchitekturen laufen sollten, darfst du die Zahlen nicht einfach so wie sie im Speicher liegen senden! Denn dann gibts Big-/Little-Endian Probleme. packlib hilft. jedenfalls bei C, mit FB hab ich's nie probiert...

Ist es aber definitiv wert zwinkern
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 28.06.2010, 19:56    Titel: Antworten mit Zitat

für FB gibts keine abstrahierenden p2p libs wie JGroups für java zb, oder? da brauchts nämlich nur init() und joinChannel("irgendein name") und schon kann man miteinander reden solange man in broadcast range ist damit sich die lib auf beiden rechnern synchronisieren kann. kein server und nix, geht alles von alleine.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 566
Wohnort: Jüterbog

BeitragVerfasst am: 28.06.2010, 21:07    Titel: Antworten mit Zitat

noch sehe ich so keine rechte Sonne bei TSNE. Ziehe mir jetzt mal Stück für Stück TPMs Tut rein.
@MOD: dein Battleship werd ich jetzt mal inspizieren. So wie ich die Materie bisher verstanden habe muss in meinem Game auch beides
(Server/Client) integriert sein.

vielen Dank erstmal euch allen
Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 566
Wohnort: Jüterbog

BeitragVerfasst am: 16.07.2010, 21:44    Titel: Antworten mit Zitat

sorry Doppelpost neutral

Oh mann, ich bin am verzweifeln und werd mich hier grad vollends zum Obst machen, egal...

Meine ersten Versuche mit TSNE!!!
Ich stelle mich irgendwie nackig an:

Dabei sind das ja im Grunde genommen nicht mehr als 4-5 Befehle
In TPMs Tutorial und seinen Beispielen läuft ne Menge Code in den Callback-Routinen
Da ich nun unbedingt meinen kleinen Eventloop aus meiner GUI, muss ich versuchen
TSNEs Asynchronität irgendwie auszutricksen und in einen kleinen Loop zu pressen.
Und Callbacks als Bestandteil eines UDTs ist mir leider nicht geglückt.

Darum ein globales Info-UDT,in dem sich die Callbacks verewigen können und
aus dem man sich die entsprechenden Daten saugen muss.
Anders konnte i c h es nicht lösen traurig

Wichtig war mir halt ein Loop auf oberster Modul-Ebene in dem irgendwann was
gesendet werden kann, und wenn eine Message ankommt diese auch verarbeitet wird.

In MODs BattleShip wird fleissig gethreaded und gemutext... Keine Sonne ich sehe...

das der folgende Code unter aller Kanone ist, weiss ich traurig

Verbesserungsvorschläge sind äusserst willkommen

http://www.freebasic-portal.de/porticula/clientversuch-mit-tsne-1122.html

(benötigt natürlich die "TSNE_V3.bi" im selben Verzeichnis)




edit:
...was hab ich denn hier für Sätze zusammengepresst grinsen , muss wohl die Hitze gewesen sein. Mein Anliegen wurde zumindest verstanden...


Zuletzt bearbeitet von Muttonhead am 17.07.2010, 08:52, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 16.07.2010, 23:13    Titel: Antworten mit Zitat

Einfache Beispiele:

http://www.freebasic-portal.de/porticula/tsne-code-server-1123.html
http://www.freebasic-portal.de/porticula/tsne-code-client-1124.html

Es ist der gleiche Code, nur dass ich den Constructor dazu nutze, zu entscheiden, was es sein soll. Ich hoffe es hilft dir weiter.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 566
Wohnort: Jüterbog

BeitragVerfasst am: 16.07.2010, 23:58    Titel: Antworten mit Zitat

Da bedank ich mich jetzt mal ganz artig bei dir MOD lächeln
Das passt hervorragend. vor Freude klatschen

Für den Datenexport aus TSNE_NewData hab ich ja schon ne Lösung.
Heftiger Traffic ist nicht geplant. Denke mal, es wird kein Datenverlust geben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 15.08.2010, 17:12    Titel: Antworten mit Zitat

http://forum.qbasic.at/viewtopic.php?t=7284

geht auch wunderbar damit....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz