PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenübertragung via Internet



alter Mann
11.01.2008, 22:17
Hallo zusammen,


ich bin auf der Suche nach einer Möglichkeit, Daten zwischen 2 Mega8 über das Internet zu übertragen.

Ich hatte mir überlegt, die Übertragung mittels der seriellen Schnittstelle und einem USB-RS232-Wandler an einen PC zu übergeben, mittels eines Programmes wie auch immer das aussehen mag, an einen anderen PC über das I-Net zu übertragen und von dem aus auf dem gleichen Wege wieder an eine Mega8 zu übergeben.

Wie ich den Mega an den PC anschliesse, ist mir ja klar, aber wie geht es dann weiter?

Gibt es bereits fertige Programme, die Daten von einem (virtuellen) COM-Port übernehmen und über das Netz an einen anderen PC weiterreichen?
Und wenn ja, (hier fängt wohl mein grösstes Problem an) ist es möglich, das zu bewerkstelligen, ohne einen Router neu konfigurieren zu müssen? (Port forwarding)

Ich hatte gedacht, ich übertrage meine Daten quasi huckepack auf einem anderem Dienst wie z.B. ICQ oder etwas in der Art, welcher Serverbasiert seine Verbindungen herstellt, damit ich alle Probleme mit Routern und Firewalls aus dem Wege gehe.
Eine andere Möglichkeit, aber nur die 2. beste wahl für mich wäre ein Server/Client-Paar, damit ich nur auf einer Seite einen Server aufsetzen muss.
Oder gibt es eventuell noch eine Möglichkeit, eventuell auch ohne PC, daten ohne oder mit nur einem Server übers Internet zu übertragen, die ich hier übersehen habe?

Hintergrund ist der, daß ich maximal auf einer Seite an den Router komme, um auf diesem ein Port forwarding einzurichten.
Besser und mir lieber wäre es natürlich, auszukommen, ohne einen Server aufsetzten zu müssen, um die Verbindungsaufnahme möglichst DAU-tauglich zu gestalten.

Florian

vohopri
12.01.2008, 15:33
Hallo Florian,

leider hast du das Projekt nicht genau beschrieben. Wofür soll das gut sein und was soll das unter welchen Bedingungen genau können? Auch die Bedingungen unter denen das funktionieren soll, hast du nicht genau beschrieben. So kann ich dir nicht zielgerichtet zu etwas raten.

Aber zum Grundsätzlichen kann ich dir etwas sagen, weil ich Erfahrung im Programmieren von Verbindungen über das Internet habe.

Jede Verbindung braucht einen Server und einen Client. Das sind Programme. Der Server öffnet ein Port und hört dort. Ein Client verbindet sich mit dem Server und startet damit die Verbindung.

Damit hast du 2 mögliche Strukturen:
Struktur Peer to Peer.
Ein Peer PC startet den Server, der andere PC verbindet sich mit Hilfe des Clients dort hin.

Struktur Vermittlungsserver.
Hier hast du 3 Maschinen. Einen Vermittlungsserver, und zwei Teilnehmer. Der Vermittlungsserver kann beispielsweise ein PC mit Breitbandanschluss und Flatrate sein. Dort läuft der Server, der ein Port offen hält. Das kann beispielsweise auch Port 80 sein. Der Server muss in der Lage sein, 2 verschiedene Verbindungen gleichzeitig zu bedienen.
Wenn beide Teilnehmer Verbindung zum Vermittlungs Pc aufgenommen haben, kann das Server Programm die Daten von einer Verbindung auf die andere übertragen.

Welches Protokoll du verwendest und ob du dir ein einfaches Protokoll selbst bastelst, hängt von den Anforderungen des Projekts ab und von den Einschränkungen, die eventuelle Firewalls machen.

In jedem Fall ist es recht einfach, ein Server und ein Client Programm zu schreiben, wenn einmal die Struktur der Daten klar ist.

Ich persönlich habe so etwas öfter unter Windows mit object Pascal gelöst. Welches System kommt in Frage und Welche Programmiersprachen bei dir?

grüsse,
Hannes

Kevka
12.01.2008, 15:47
Ich bin gerade dabei einen Webserver mit C# zu schreiben, das ist ja fast das gleiche Prinzip wie bei deiner Software. Ich kann das .NET Framework im bezug auf Netzwerk bzw. Internet Kommunikation nur empfehlen.

MfG Kevka

_werwurm_
12.01.2008, 18:13
wie groß sind denn die datenmengen? muß der andere die daten sofort erhalten oder reicht das, wenn die paar stunden später erst empfangen werden?

man könnte datenpakete per ftp irgendwo hochladen wo sie der andere dann einmal am tag runterläd...

dundee12
12.01.2008, 18:37
wie groß sind denn die datenmengen? muß der andere die daten sofort erhalten oder reicht das, wenn die paar stunden später erst empfangen werden?

man könnte datenpakete per ftp irgendwo hochladen wo sie der andere dann einmal am tag runterläd...

Wie man das Programmiert weiß ich auch nicht.
Aber man kann es ja so programmieren,
dass ein aktualisierungsintervall immer nach neuen Daten
guckt.
Ich denke mal, dadurch das es nicht sehr viele Daten sind
wird die Aussage mit ein "paar Stunden später" nicht stimmen.

Denn das Uploaden von ein paar Daten, die zwischen 2 Mega8
fließen wird nicht so lange dauern.

alter Mann
12.01.2008, 21:00
Erst mal Danke, für die Antworten,



leider hast du das Projekt nicht genau beschrieben. Wofür soll das gut sein und was soll das unter welchen Bedingungen genau können? Auch die Bedingungen unter denen das funktionieren soll, hast du nicht genau beschrieben

Es geht darum, zwischen 2 Handgeräten Steuerbefehle auszutauschen. In etwa so: ich drücke auf Gerät A eine Taste und auf Gerät B soll eine LED Leuchten, ein Signalton ertönen oder etwas in der Art. Das ganze soll in beide Richtungen funktionieren.
Es geht mir im Moment erst einmal ums Prinzipielle. Ich habe zwar schon eine konkrete Anwendung vorschweben, aber das ist noch nicht aktuell. Mein Problem ist wie ich schon geschrieben habe, der Datenaustausch.



Jede Verbindung braucht einen Server und einen Client. Das sind Programme. Der Server öffnet ein Port und hört dort. Ein Client verbindet sich mit dem Server und startet damit die Verbindung.

Über die grundsätzlichen Strukturen bin ich mir durchaus im klaren ;-)



Struktur Vermittlungsserver.
...

Das kommt für mich leider nicht in Frage, da ich nicht die Möglichkeiten habe, einen solchen aufzubauen, aber ich sehe darin eigentlich das Optimum für meinen Fall, weshalb ich auch in erwägung gezogen habe, einen bereits vorhandenen Dienst wie ICQ oder etwas in der Art, der relativ einfach und problemlos aufzusetzen ist und der es nicht notwendig macht, auf Routern ein Port forwarding einzurichten, wie es für einen Server notwendig wäre.
Deshalb habe ich mich auch ein wenig darauf versteift, eben einen Instantmessenger mit bereits vorhandener Infrastruktur für meine Zwecke zu "missbrauchen".



Ich persönlich habe so etwas öfter unter Windows mit object Pascal gelöst. Welches System kommt in Frage und Welche Programmiersprachen bei dir?

In frage kommt zuerst einmal Windows. Programmiertechnisch würde ich Pascal bevorzugen, da ich damit, wenn auch auf Microkontrollern und nicht unter Windows, bereits erfahrung habe.



wie groß sind denn die datenmengen? muß der andere die daten sofort erhalten oder reicht das, wenn die paar stunden später erst empfangen werden?

die Datenmengen sind verschwindensd gering, (~1-2Byte pro Sekunde, wenn überhaupt) aber diese sollten zeitnah übertragen werden. Ich hoffe, eine Verzögerung von maximal 1/2 Sekunde zu erhalten, wie es in gängigen InstantMessengern üblich ist.


Florian

vohopri
13.01.2008, 11:27
Ok Florian,

da ist schon einiges klarer geworden, was die Anforderungen betrifft.

Verzögerungen unter 500 ms zu erreichen ist kein Problem. Ich hatte bei Sprache und Video bidirektional in Echtzeit auch nie mehr.

Wenn du Pascal kennst, dann ist das schon einmal günstig. In diesem Fall würde ich Object Pascal empfehlen. Mit der Delphi IDE kann man recht komfortabel und einfach so etwas programmieren. Vor allem der leichte Zugang zum Windows API in Delphi ist ein Hit.

Beim Programmieren und Testen kannst du alle beteiligten Server und Clients auf ein und der selben Maschine laufen lassen. Das macht die Angelegenheit organisatorisch recht einfach.



Das kommt für mich leider nicht in Frage, da ich nicht die Möglichkeiten habe, einen solchen [Vermittlungsserver] aufzubauen
Das verstehe ich jetzt nicht. Was gibt es da auf zu bauen? Das Vermittlungsserver Programm läuft auf einem beliebigen (Heim-) PC mit Internetanschluss.

Auch die Schwierigkeit, die Router zu konfigurieren ist nicht nach vollziehbar. Worin könnte da ein Problem bestehen?

grüsse,
Hannes

jeffrey
13.01.2008, 14:05
hi,
ne möglichkeit wär au skype zu verwenden, und die daten über dtmf(ich glaub des heißt so)zu übertragen, oder einfach 2 alte modems nehmen.
mfg jeffrey

alter Mann
13.01.2008, 17:45
Hallo noch mal,



Was gibt es da auf zu bauen? Das Vermittlungsserver Programm läuft auf einem beliebigen (Heim-) PC mit Internetanschluss.


Dessen bin ich mir schon bewusst, und wenn ich mir sicher wäre, das nur ich das genze mal in Betrieb nehmen müsste dann wäre auch eine Server/Client Lösung drinne. Aber ich fürchte/hoffe, das das ganze mal später nicht nur von mir benutzt wird, sondern auch von anderen Leuten. und da wäre es ein wenig ungünstig, wenn für jede Verbindung ein Vermittlungsserver stehen müsste, oder ich einen für 10-20 Verbindungen 24/7 betreiben müsste.



Auch die Schwierigkeit, die Router zu konfigurieren ist nicht nach vollziehbar. Worin könnte da ein Problem bestehen?

Das Problem besteht darin, das auf der anderen Seite, also nicht bei mir, kein zugriff auf den Router möglich ist. Weder physisch noch auf dessen Konfiguration.



ne möglichkeit wär au skype zu verwenden, und die daten über dtmf(ich glaub des heißt so)zu übertragen, oder einfach 2 alte modems nehmen.

das wäre theoretisch eine Möglichkeit, aber praktisch zu viel Aufwand denke ich.



Ich denke, ich werde erst mal eine Client/Server Struktur benutzen, da ich ja auf meiner Seite an den Router dran komme. Wenn es nachher Probleme geben sollte, kann ich mir immer noch Gedanken machen, wie ich die lösen könnte ;-)

Florian

vohopri
13.01.2008, 18:24
Ja,

Probleme kann es immer geben, wenn man Daten überträgt, mit deren Übertragung der Eigentümer des Netzes nicht einverstanden ist. Aber technisch ist ja alles gelöst. Programmtechnisch ist das an einem Wochenende zu realisieren.

Halte uns informiert, wie es mit dem Projekt weiter geht.

grüsse,
Hannes

alter Mann
13.01.2008, 18:34
es geht nicht darum, was der Netzbetreiber will oder nicht, aber der Router steht im konkreten Fall nicht bei meinem Bekannten sondern bei einem Nachbarn ;-)

Ich werd Euch auf dem Laufenden halten, wie ich voran komme.

Florian

vohopri
13.01.2008, 18:51
Ja das meine ich: Wenn der nette Nachbar einverstanden ist, dass man seinen Internetanschluss auf diese Weise nutzt, dann ist das Anpassen der Routerkonfiguration kein Problem.

grüsse,
Hannes