mikrocontroller.net

Forum: PC-Programmierung Suche Programm für TCP/IP Port Überwachung


Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe da ein Problem. Mit einem ARM7TDMI will ich Daten über TCP/IP 
an einen PC senden, über einen bestimmten (freien) Port und in einem 
eigenen Datenformat. Also KEIN Telnet oder sowas.

Die Programmierung des ARM7 bereitet mir weniger Kopfzerbrechen, als das 
Auswerten der Daten am PC. Ich finde nämlich einfach kein Programm, 
welches mir erlaubt die Daten, die der ARM sendet am PC sichtbar zu 
machen bzw. zu prüfen ob diese überhaupts ankommen.

Kennt Ihr Programme mit denen man einen Port überwachen kann und die 
einfach alles Byte-für-Byte ausgeben was über diesen Port eingeht? Alles 
was ich fand sind Terminals für Telnet usw. Das hilft mir aber nicht...
Zwar will ich später ein eigenes PC-Programm für diesen Zweck schreiben 
aber zum reinen Testen der Verbindung in dem Stadium wär das noch etwas 
zu viel.

Gruß
Florian

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal die Frage welchen Betriebssystem?

Als nächstes UDP oder TCP?

Bei UDP kannst du tcpdump oder wireshark verwenden. Wenn es TCP ist dann 
muss auf dem Port erstmal ein Programm laufen befor überhaupt eine 
verbindung zustande kommt. Unter linux könnte man es mit netcat machen.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Antwort!

Sorry, hab wieder die Hälfte vergessen ;-)

Betriebsystem: WinXP
Protokoll: TCP

Ich hatte gehofft, dass es hier Programme gibt, die den Port belegen und 
eben die Daten die über den Port gehen offen legen.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch mal Wireshark.

Autor: Norgan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Versuch mal Wireshark.

Nutzlos für TCP, da ohne fehlende "Gegenstelle" keine Verbindung 
aufgebaut werden kann. Wireshark wird nur zeigen, dass der 
Verbindungsaufbau ins Leere läuft.

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
natürlich funktioniert wireshark.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Habe mir Wireshark mal eben angeschaut.
An und für sich macht es einen sehr guten Eindruck - Aber Wireshark 
braucht definitiv noch Unterstützung von einem anderen Programm. Als 
reiner Sniffer bringt es mir nun nicht viel.

Ich erläutere mal was ich genau vor habe:
Im ersten Schritt soll mal vom PC über TCP/IP dem ARM irgendwelche Bytes 
senden können. Der ARM soll sie empfangen und dann mit einem ASCII 
"ok!\n" antworten.

ARM und PC sind direkt, ohne Router verbunden. ARM hat eine fixe IP 
Adresse und Portnummer.

Das Problem: Zum einen habe ich kein Programm mit dem ich gezielt 
einzelne Bytes senden kann. Zum anderen keine Möglichkeit zu überprüfen 
ob der ARM sich meldet. Letzteres könnte ich mit Wireshark überprüfen. 
Allerdings muss ich den ARM dazu erstmal von außen "anregen".

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

soviel ich weiss, kann man den Telnet-Clienten, der bei Windows mit 
dabei ist, auf beliebigen Ports laufen lassen: einfach beim 
Verbindungsaufbau nach der IP-Adresse die Portnummer nach einem 
Doppelpunkt dranhängen.

Er funktioniert wie ein Terminal-Programm. Man kann auch beliebiges Zeug 
Tippen und per Enter senden, Alles was reinkommt wird angezeigt, sofern 
es darstellbar ist. Ein spezielles Protokoll setzt der Client nicht 
voraus, das will nur der Telnet-Server, aber darum geht es hier ja 
nicht.

Ich demonstriere damit immer Auszubildenden, wie die Mailprotokolle SMTP 
und POP3 "zu Fuß" funktionieren, klappt prima ...

Frank

Autor: Roland Praml (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für sowas würde ich netcat verwenden.
netcat kann sowohl als Client (sich zu einem Port verbinden) als auch 
als Server (an einem Port horchen) verwendet werden.

Ein und Ausgabe erscheinen am StdIN/StdOut und lassen sich auch bequem 
in eine Datei umleiten.

Es gibt auch eine Windows-Version, google mal nach netcat.exe. Diese 
wird aber oft von Virenscannern als potentiell gefährlich eingestuft

Gruß
Roland

Autor: Oha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit TCP is nicht mit mal so mithoeren. Du brauchst ein socket, der da 
macht was auf der anderen Seite noetig ist.

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Oha: Netcat macht genau das. (Praktisch Telnet rückwärts :)

Autor: hmm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Von den Herstellern von Telnet- und Printservern gibt es
auch Treiber die dann eine oder mehrere virtuelle COM-Schnittstellen
emulieren. Falls das von Interesse ist.

Netcat wär sonst auch meine erste Wahl.

Eine Telnetemulation macht immer erst eine Telnetnegotiation in
der Parameter ausgehandelt werden. Das kann u.U. störend sein.

Autor: Michael Uray (michaeluray)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das einfachste Programm um eine TCP/IP Verbindung aufzubauen um 
ascii Zeichen zu lesen, ist das Windows eigene Hyperterminal.

Folgende Schritte sind notwendig:
- Start -> Ausführen -> "hypertrm.exe"
  (eventuell muß dann einmal eine Ortsvorwahl konfiguriert werden)
- Einen beliebigen Namen eingeben
- Verbindung herstellen über "TCP/IP (Winsock)"
- Beliebigen freien Port (Anschlussnummer) angeben, Hostadresse leer 
lassen
- mit OK bestätigen und danach die Fehlermeldung bestätigen
- Menü -> Anrufen -> "Auf Anruf warten"

Jetzt wartet das Terminal auf eine eingehenden Verbindung auf dem 
angegebenen Port.

Das Ganze kann z.B. mit dem Programm telnet getestet werden.
Start -> Ausführen -> "telnet localhost 23"
23 muss durch den vorher ausgewählten Port ersetzt werden.

lg.
michi

Autor: Chris Z. (sicro)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, ist ne ganz einfache Sache in Vb.net 2008 Express Edition. Benutze 
ich um Programme auf dem PC vom Handy im WLAN fernzusteuern.

Im Anhang mal meine Variante, Empfangen über UDP/TCP, Port und Protokoll 
im Programm festelegen. Alles auf dem Port wird dann in der TextBox 
angezeigt, nach jeder Verbindung wird eine neue Zeile geschrieben.

EDIT: Je nach dem was du sendest, natürlich noch das Encoding von ASCII 
auf sonstwas verändern.

Hoffe ich konnte dir helfen,
Chris

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.