Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

26.02.2016, 19:07

ich hab grad echt keine ahnung was du wissen willst ._. sorry :/

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

12

26.02.2016, 19:39

Es klingt für mich sehr nach einem Chat/Messanger. Sollte das im Wesentlichen deinem Anwendungsfall entsprechen: Was kann man seitens Anwender erwarten, was er für den Verbindungsaufbau erledigen kann?
Im Idealfall würde es wohl reichen, bei einem der beiden per UPnP einen Port am Router öffnen zu lassen und auf eine eingehende Verbindung zu warten, dem anderen wird die IP-Adresse mitgeteilt (wahrscheinlich kann man Dienste im Internet verwenden, um die eigene, öffentliche IP-Adresse zu ermitteln), der diese bei sich eingibt, damit das Programm sich verbinden kann.
Es sollte also grundsätzlich ohne einen Server möglich sein, allerdings müssen die Nutzer dann auf irgendeinem anderen Weg die IP-Adresse austauschen, man hat keine Kontaktliste, Gesprächsverläufe können nur lokal gespeichert werden usw.

Für das Entwickeln deines Programms kannst du auch lokal arbeiten. Selbst wenn ein Server dazwischen hängt, kannst du diesen lokal laufen lassen und die Instanzen des Programms sich damit verbinden lassen. Solltest du dein Programm anderen geben wollen, könntest du die Weiter-/Umleitung eines Ports im Router einstellen und andere könnten sich dann mit dem Server auf deinem Rechner verbinden.

Es kann auch sein, dass in deinem Fall eine leicht andere Vorgehensweise sinnvoller wäre, allerdings hast du bisher nicht beschrieben, was dein Programm machen soll. (Ich meine damit eine Beschreibung dessen, was das Programm insgesamt machen soll, nicht nur, was bei der Kommunikation passiert.)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

13

26.02.2016, 19:47

Ich gehe man von folgenden Voraussetzungen aus:
*Es wird ein Router verwendet. (NAT)
*Du hast eine dynamische IP
*Du nutzt keinen dynamisches DNS

Du hast das Problem, dass deine Anwendungen nicht wissen wo sein Gegenüber ist. Hinzu kommt, die Rechner auf dem die Programme laufen sind aus dem Internet nicht direkt sichtbar.

Lösungen:
* Du kannst einen VPN Tunnel zwischen beiden Rechnern aufbauen. Auch hier hast du das Problem mit der dynamischen IP. Aber deine Programme könnten sich einfach über IP Multicast a.Ä. finden. Das IP Problem kannst du evtl mit einem dynDNS Dienst lösen. Und deine Router müssen die Ports öffnen und an die Rechner weiterleiten. (Der VPN Tunnel ist nicht nötig macht es aber etwas leichter und sicherer)
* Du nutzt einen gemeinsamen bekannten Ort im Internet der die Daten vermittelt (Server). Gibt dafür kostenlose Cloud Dienste die deinen Anforderungen mehr als genügen.

Persönlich finde ich so eine Cloudlösung am einfachsten.
:love: := Go;

14

26.02.2016, 20:06

@H5::
hast Du eine Empfehlung für so einen Clouddienst? ^^

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

15

26.02.2016, 20:54

Du kannst dir ja mal heroku ansehen, ich habe keine Erfahrungen mit denen jedoch gutes gehört. Selbst bin ich mit digitalocean recht zufrieden. Die haben jedoch kein kostenloses Angebot.
:love: := Go;

16

26.02.2016, 21:25

Geh einfach über die Loopadresse. Wenn beide Programme sich auf dem selben Rechner befindet, hast du ein 0er Ping. Es geht nur einmal Stack hoch und runter und du hast keine Latenzen. Geschieht alles automatisch vom Betriebssystem. TCP/IP.

beide Anwendungen sollen auf verschiedenen Rechnern und in keinem gemeinsamen Netzwerk (z.b. WLAN) laufen :)


Aso ok. Ja dann normale Netzwerk Verbindung und nicht über die Loopadresse. TCP/IP.

Aso und, wenn du irgendwelche Savegames hast oder irgendwelche persistenten Daten die sich Programme teilen sollen. Dann kannst du einen Clouddienst verwenden. Aber bei direkter Kommunikation würde ich davon abraten. Dann kannst du auch sowas wie Dropbox verwenden... :S

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »TypeOverride« (26.02.2016, 21:34)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

17

27.02.2016, 11:11

Na ich sehe das doch jetzt richtig dass es sich hier nur um lokales Netzwerk handelt oder nicht? Hier wird mit vielem um sich geworfen und das meiste ist eigentlich total overpowered wie ich finde.
Im lokalen Netzwerk kannst du deine Partner einfach per Broadcast finden. Dann können die untereinander verbinden. DynDNS und so gedöns interessiert dich überhaupt nicht da du die IP der Partner wie gesagt vor dem Verbindungsaufbau einfach per Broadcast ermittelst. Die Partner kommunizieren dann ganz normal per TCP und Co über das Netzwerk.
Wenn du jetzt noch etwas mehr preisgeben würdest um was für eine Anwendung es sich handelt und was da genau gesendet wird könnte man vielleicht noch weiter helfen. Teilweise ist es zum Beispiel sinnvoll fertige Protokolle wie zum Beispiel HTTP für die Kommunikation zu nutzen. Die sind dann oft auch schon fertig implementiert.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

18

27.02.2016, 11:28

beide Anwendungen sollen auf verschiedenen Rechnern und in keinem gemeinsamen Netzwerk (z.b. WLAN) laufen :)

Oder verstehe ich das nur nicht richtig?
:love: := Go;

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

19

27.02.2016, 12:29

Ich hätte es so wie H5:: verstanden, dass es Rechner in unterschiedlichen Netzwerken sind, also eine Internetverbindung notwendig ist.

@Mango66:
Es wäre auch gut, wenn du bei der Reaktion auf die Beiträge weniger selektiv vorgehen würdest. Eine geeignete Lösung kann nur genannt werden, wenn die Aufgaben der Anwendung bekannt ist.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

20

27.02.2016, 13:06

Da habt ihr natürlich recht. Habe mich da verlesen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige