Seite 2 von 2

Re: String an IP-Adresse senden

Verfasst: 02.04.2012 16:39
von NicTheQuick
Entweder du hast dein Programm zwei mal gestartet, sprich eine Instanz läuft noch irgendwo im Hintergrund oder ein anderes Programm nutzt diesen Port schon. In dem Fall musst du herausfinden, welches Programm das ist.

Re: String an IP-Adresse senden

Verfasst: 02.04.2012 22:11
von Martin66119
Vielen Dank für die Hilfe!

Nun habe ich in der Zeile (Client)

ConnectionID = OpenNetworkConnection("79.196.61.67", Port)

für die 79.196.61.67 die IP des Routers eingetragen (198.xxx.x.x) und dann den Server und Client gestartet. Beide Programme liefen auf einem Rechner. Der String-Austausch hat anscheined funktioniert.

Um das ganze nun in der Realität zu testen, müsste ich z.B. auf meinem Rechner z.B. das Serverprogramm starten und an einem weiteren das Clientprogramm (beide an verschiedenen Internetanschlüssen).
Wenn dann die Datenübertragung geht, wäre alles ok. Bei dem anderen Rechner müsste ich selbstverständlich auch die Portweiterleitung einstellen.

Grüße

Re: String an IP-Adresse senden

Verfasst: 02.04.2012 22:27
von Martin66119
Habe noch was vergessen!

Wenn ich mit den Beispielprogrammen einen Port (5-stellig) öffne und im Router die Portweiterleitung freigebe, dann handle ich mir doch im Grundsatz Risiken ein. Oder habe ich mit dem Beipielcode eigentlich nichts zu befürchten, dass ein Schlingel auf meinen Rechner zugreifen kann.

Grüße
Martin

Re: String an IP-Adresse senden

Verfasst: 02.04.2012 22:41
von ts-soft
Wenn Schlingel auf Deinem Rechner kommen, liegt es wohl an fehlenden Sicherheitsmaßnahmen.
Solange Du als User und nicht als Admin (wie es unter XP üblich ist) im Internet bist, gibt es nicht
viel, was so ein Schlingel machen kann, außer Dir die XXX-Filme zu klauen :mrgreen:

Weitere Infos zu Schlingel: http://de.wikipedia.org/wiki/Schlingel

Re: String an IP-Adresse senden

Verfasst: 03.04.2012 09:37
von WPö
Moin, Martin!

Wie meine Vorschreiber schon anmerkten, ändert sich ja Deine IP-Adresse durch die dynamische Vergabe Deines Netzanbieters wahrscheinlich alle 24 Stunden (Zwangstrennung bei ADSL in Deutschland).

Weil nun aber Sender und Empfänger nicht andauernd zuvor telefonisch (und damit fehlerträchtig) ihre IP-Adressen austauschen müssen sollen wollen dürfen äh, könnte man einen DynDNS-Dienst verwenden. Dieser muß aber im Router eingetragen werden (auf beiden Seiten), sodaß man die Stationen per Namen ansprechen kann. Die Übersetzung in IP-Adressen macht der Dienst. Dabei darf man sogar kryptische Zeichenketten verwenden. Die meisten Klarnamen sind ohnehin bei diesen Diensten schon vergeben.

Um nun auch die Ports immer freizuschalten - auch ohne manuelle Einrichtung am Router (beide Seiten!), könnte man uPnP nehmen. Das ist die automatische Portfreigabe, die aber kompliziert in der Programmierung ist. Speziell mit solchen Geschichten habe ich mich noch nicht mit PB beschäftigt - mußt Dir also sowieso die Grundlagen der Netzwerktechnik anlesen.

Schließlich wundert mich, daß Du gleich von 0 auf 100 springen willst, ohne Dir ein paar Wochen in diesem Thema Zeit zu lassen, worin Du Erfahrungswerte sammeltest, die Dir in diesem Fall hülfen. (Hach, schön, dieser Konjunktiv II!)

Gruß - WPö

Re: String an IP-Adresse senden

Verfasst: 03.04.2012 13:06
von Martin66119
Hallo WPö,

der Grund warum ich mich interessiere ist:

Man hört immer, dass es so einfach sei Daten übers Internet zu schicken. Nun wollte ich mal wissen wie das funktioniert. Letztendlich eine Anwendung zu programmieren und dabei auch die Sicherheitsaspekte zu berücksichtigen wollte ich nicht. Mit ging es nur darum mal übers Internet von einem Rechner zu einem anderen ein Hallo zu senden, ohne ein fertiges Programm zu nutzen. Hierzu habt ihr mir sehr geholfen das hinzubekommen. Na gut! Ein fertiges Programm, welches mir hier in PB gegeben wurde, habe ich hier nun auch genommen.

Klar hatte ich eine Idee was ich gerne IRGENDWANN mal machen wollte. Zu Hause habe ich einen Microcontroller der ein paar Messwerte meiner Heizung erfasst. Diese wollte ich gerne übers Netz abfragen und vielleicht die Heizung aus der Ferne ein oder ausschalten. Aber wie gesagt, da muss ich mich erst richtig in das Thema einarbeiten. Mir ist klar, dass diese Idee ein großes und auch zeitaufwendiges Projekt ist und für mich als Anfänger wohl nicht zu schaffen ist.

Vielen vielen Dank.
Martin

Re: String an IP-Adresse senden

Verfasst: 03.04.2012 14:17
von NicTheQuick
Anstatt eine Direktverbindung zwischen zwei PCs zu nutzen, könntest du dir auch von irgendwo einen Happen Webspace mieten oder kostenlose Alternativen nutzen und das ganze indirekt machen. Du machst dir also eine kleine Webseite, die die aktuellen Heizungsdaten anzeigen und ändern kann. Ab und an verbindet sich dann dein kleiner Mikrocontroller zu Hause mit der selben Seite und updatet die neuen Daten bzw. nimmt die geänderten Daten entgegen.
Für AVRs gibt es ja bereits fertige Netzwerkmodule mit 10 MB/s. Dann bräuchtest du also noch nicht mal einen extra Rechner nebenher laufen lassen und Probleme mit Portweiterleitungen wird es auch nicht geben, da Port 80 für HTTP immer standardmäßig frei ist.

///Edit:
Hier übrigens ein Netzwerkmodul zum selbst bauen: mini WEB Server mit Atmel-Mega Controller und CS8900A

Re: String an IP-Adresse senden

Verfasst: 04.04.2012 06:53
von Martin66119
Guten Morgen NicTheQuick!,

vielen Dank für deine Hilfe und auch für den Link, den du angehängt hast.

Grüße
Martin

Re: String an IP-Adresse senden

Verfasst: 07.04.2012 09:34
von WPö
Moin, Martin!

Wenn es wirklich nur um sowas triviales wie eine Anzeige von Heizungsparametern geht, darf man freilich gern einen ATmega o.ä. nehmen und mit Port 80 beginnen. Ich habe mich kurz schlau gemacht und rate zu Schussern von wenigstens 128kB Flash. Die meisten von denen haben dann auch genügend SRAM für die Daten und den TCP/IP-Stapel.

Z.B. ein ATmega128-16AU oder Nachfolger ist für ca. 6,-€ aufwärts zu haben. Siehe http://www.atmel.com/devices/ATMEGA128A.aspx. Die Dinger sind leicht in Assembler zu programmieren. Wenn Du C verwenden willst, rate ich zu einem kommerziellen Compiler (schlechte Erfahrung mit dem kostenlosen gemacht). Module für Ethernet gibt's, aber die sind teuer, weil in niedriger Stückzahl hergestellt.

Wenn Du allerdings gleich ordentlich einsteigen willst, schnapp Dir doch einen halbwegs zeitgemäßen 32-Bitter, den man schon für den halben Preis eines 8-Bitters bekommt: ARM z.B. von STM, also STM32F107RCT6. Kostenpunkt liegt bei ab 3,43 € netto (http://de.futureelectronics.com/de/tech ... .aspx?IM=0). Weitere Vorteile hierbei sind: kostenlose und funktionierende Entwicklungsumgebung für C vorhanden, für FastEthernet brauchste nur noch einen Chip und'n bißchen Vogelfutter und fertige Routinen für Ethernet wie TCP/IP-Stapel und HTTP-Server-Rohbau findeste in den Beispielprojekten von STM und anderen Herstellern. Für diese Entwicklungsschiene gibt's auch schon fertige Platinen, die aber wegen der enormen Möglichkeiten (alle Busse herausgeführt, LCD drauf, FastEthernet, 2 mal CAN, USB OTG, SD-Leser, Scheckkartenleser, AD/DA, ...) ziemlich teuer sind. Das STM3210C-EVAL habe ich sehr häufig genutzt. Preis lag vor einem Jahr bei rund 250,- Euronen netto. Es dürfte klar sein, daß dies genau der richtige Einstieg ist für solche Mikrokontroller-Geschichten.

Sollte die Sache auf dieser Basis weitergehen, sollteste aber einen neuen Strick in der Hardware-Rubrik starten.

Gruß - WPö