Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 566 Wohnort: Jüterbog
|
Verfasst am: 28.06.2010, 00:03 Titel: Zwei Programme miteinander kommunizieren lassen |
|
|
Ich wollte ursprünglich 2 Instanzen eines Programmes über PIPE mit einander kommunizieren lassen.
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 28.06.2010, 00:06 Titel: |
|
|
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 |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 566 Wohnort: Jüterbog
|
Verfasst am: 28.06.2010, 00:17 Titel: |
|
|
Hmmm jaaa.... darum wollte ich mich ja eigentlich noch drücken, aber irgendwann hätte es ja eh sein gemusst.
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 28.06.2010, 12:46 Titel: |
|
|
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.  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 28.06.2010, 17:46 Titel: |
|
|
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 |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 28.06.2010, 18:43 Titel: |
|
|
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  _________________ 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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 28.06.2010, 19:56 Titel: |
|
|
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 |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 566 Wohnort: Jüterbog
|
Verfasst am: 28.06.2010, 21:07 Titel: |
|
|
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 |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 566 Wohnort: Jüterbog
|
Verfasst am: 16.07.2010, 21:44 Titel: |
|
|
sorry Doppelpost
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
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
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 , 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 |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 566 Wohnort: Jüterbog
|
Verfasst am: 16.07.2010, 23:58 Titel: |
|
|
Da bedank ich mich jetzt mal ganz artig bei dir MOD
Das passt hervorragend.
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 |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
|
Nach oben |
|
 |
|