Kommunikation über Internet

Fyle

Cadet 4th Year
Registriert
Nov. 2013
Beiträge
124
Ich bin mir sicher, dass es viele Erklärungen hierfür schon irgendwo gibt. Ich bin aber sehr am Anfang ,und weiß nicht, wonach ich direkt suchen muss. Ich möchte wissen, wie ich Beispielsweise mit jemand anderem über eine Webadresse kommunizieren kann.
Also wie ich z.b. eine Nachricht über das Internet an jemand anderen verschicken kann. Das alles aber ohne irgend welche offiziellen websites, sondern eher als test bzw. Programmierübung. Oder alternativ, wie könnte ich mit jemandem eine selbstprogrammierte Version von Pong spielen. Wisst ihr was ich mein?
Wenn jemand irgend eine ausfürhliche Erklärung kennt, gerne Link schicken. Aber wie gesagt, ich habe kaum bis gar keine Ahnung in dem gebiet, deshalb weiß ich auch nicht, ob ihr mit meiner Erklärung hier was Anfangen könnt, bzw. ob das überhaupt geht.
Aufklärung ist immer gern gesehen :)
 
"webadresse" bedeutet in meinem verstaendnis, dass ein webserver (http/s) einen request eines webclients (z.b. browser, wget, curl, custom) beantwortet. das ist schon mal ein relativ komplexer, standardisierter vorgang.
loes dich, wenn du an grundlagen interessiert bist, vielleicht erst mal davon los und schau dir an, wie sockets funktionieren, ganz ohne frameworks oder sonstwas. eine rudimentaere datenverbindung im internet funktioniert typischerweise ueber eine adresse (bspw. ip, host) und einen port, und wie der inhalt dieser so zustande kommenden datenverbindung dann aussieht, ist voellig deiner definition ueberlassen.
 
  • Gefällt mir
Reaktionen: nighteeeeey
Im einfachsten öffnest du eine Socket auf einem PC und schickst mit einem anderen PC da Daten hin. Dafür gibts in jeder höheren Programmiersprache entsprechende Bibliotheken die die Grundlagen übernehmen.
Für so eine Verbindung musst du deinen Gegenüber aber direkt per Netzwerk erreichen, das heißt er muss in seinem Router einen Port weiterleiten und darf entsprechend nicht hinter Provider-NAT sitzen.
 
Grundlegende Programmierkenntnisse in einer Sprache deiner Wahl sind dabei voraussetzungen.
Wobei ich dir zu Sprachen wie Java, C# oder Python raten wuerde und von Sprachen wie JavaScript abraten moechte.

Von JavaScript rate ich dir ab, da wenn du den Browser nutzen moechtes noch Server dazwischen geschaltet sein muessen -> mehr aufwand und wenn du dich auf NodeJS beschraenkst die initiale einrichtung recht umstaendlich ist und weitere Kenntnisse in Node benoetigt werden.

Zu Java, C# oder Python rate ich dir, da es sehr verbreitete Sprachen sin dund du daher schnell und leicht hilfe findest.

Bei deinem Vorhaben moechtest du im Bereich der Netzwerkprogrammierung einen Einblick erhalten.
Das grundlegende Konzept sieht wie folgt aus: Es wird auf einer Maschine ein Sender und auf einer anderen ein Empfaenger benoetigt. Wie die Namen es schon vermuten lassen sendet der Sender die Nachricht und der Empfaenger erhaelt diese, dafure muessen diese sich im gleichen Netz befinden, d. h. die IP-Adressen muessen aufgeloest werden koennen. Befinden sich beide Maschienen in einem lokalen Netz ist das weitesgehend unproblematisch. Wenn das Internet dazwischen ist wird das aufwendiger.
Bei der Kommuikation selbst gibt es viele Moeglichkeiten. Zum einen muss man sich fuer ein Protokoll entscheiden, also TCP oder UDP, dann fuer einen freien Port, dann fuer ein DTO (Data Transfer Object), dann fuer ...
Fuer eine Biderektionale Verbindung, werden auf beiden Maschienen ein Sender und ein Empfaenger benoetigt.

Waehrend meiner Ausbildung habe ich mit ein paar Klassenkameraden aus langerweile und unterforderung im Unterricht ein IRC angefangen zu entwickeln. Den Sourcecode kannst du dir auf Github anschauen: https://github.com/ManticSic/efiaIRC
Die Grundlegenden Funktionen sind vorhanden. also das Senden und Empfangen. Verwendet wird UDP mit Multicast adressen. In einem Loaklen Netz funktioniert es, weiter haben wir es glaube ich nicht entwickelt.
 
Zurück
Oben