Autor Beitrag
Hux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 171



BeitragVerfasst: Sa 27.01.07 16:16 
Moin Leutz!

Ich glaub die Ueberschrift sagt schon alles...
Ich moechte ein Programm schreiben welches reagiert, wenn ich angepingt werde.
Ich habe es schon mit den Indy Komponenten versucht und auch schon danach gegooglet..., kam aber nichts raus ...

Danke schonma im Vorraus fuer Antworten.

Greetz, Hux.


Zuletzt bearbeitet von Hux am So 28.01.07 22:23, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 27.01.07 17:30 
Moin!

user profile iconHux hat folgendes geschrieben:
Ich moechte ein Programm schreiben welches reagiert, wenn ich angepingt werde.

Huah, das ist aber nicht einfach... :shock: Da bereits Teile des IP-Stacks (und damit das Betriebssystem) auf eine solche Anfrage antworten, wird dort wohl auch der ICMP-Port 0 gebunden sein (also ziemlich low-level). Ich habe keine Ahnung, wie man dem IP-Stack "erklärt", dass er nicht mehr für ICMP-Echo-Anfragen zuständig ist. :nixweiss:

Ansonsten könntest du noch entsprechende OS-Calls hooken oder per WinPCap nach ICMP-Paketen "lauschen" und das als Trigger verwenden... :? ob das mal den Aufwand lohnt... :?:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Hux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 171



BeitragVerfasst: Sa 27.01.07 19:57 
Naja.., ok, glaub die Idee war doof *g
Ich wollte einfach nur eine Zahl/Buchstabe... o.Ä an einen anderen Computer schicken, damit das Programm dort reagiert und bestimmte Funktionen ausfuehrt..
Aber mit Ping wird das wohl nicht moeglich sein...
Gibt es denn andere Alternativen dazu ?

Greetz, Hux.
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Sa 27.01.07 20:53 
Haja, klar. Du hast die volle Auswahl
UDP, TCP,... ;)
Alle Netzwerkprogramme machen ja nichts anderes, als Daten zu verschicken ;)

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
Raffo
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 300



BeitragVerfasst: Sa 27.01.07 21:12 
Ich denke, das Problem von Allem ist doch, das Du nicht unbedingt "durch" die Firewall kommst, es sei denn, du hast den ZIEL-Compi eh unter Kontrolle und machst Dir nen Port auf.

Nichtsdestotrotz ist es relativ einfach eine Client-Server Anwendung über TClientSocket und TServerSocket aufzubauen. (hier gibts massig Beispiele im Forum).
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 27.01.07 21:28 
user profile iconRaffo hat folgendes geschrieben:
Nichtsdestotrotz ist es relativ einfach eine Client-Server Anwendung über TClientSocket und TServerSocket aufzubauen. (hier gibts massig Beispiele im Forum).

Einfach, ja, aber sehr empfindlich. ich hab schon mal ein Beispielprogramm minimal abgewandelt, eine winzigkeit verändert, nichts, das für den übertragenden Code relevant gewesen wäre, schon passierte nix mehr. Hab die änderung rückgängig gemacht, nix. Seit dem hab ich keine lust mehr auf Netzwerkanwendungen.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Hux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 171



BeitragVerfasst: Sa 27.01.07 21:59 
user profile iconalias5000 hat folgendes geschrieben:
Haja, klar. Du hast die volle Auswahl
UDP, TCP,... ;)
Alle Netzwerkprogramme machen ja nichts anderes, als Daten zu verschicken ;)

Gruß
alias5000


Ja, ich wollte ma was mit TCP machen.
Aber funktioniert das auch uebers Internet oder nur im eigenen Netzwerk?
Ich hab mir schon die BasicClientServer Demo angeschaut und bei mir tut es.
Dann hab ich es an einem Kumpel verschickt und er konnte mir aber keine verbindung zu mir herstellen.

Greetz, Hux
Raffo
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 300



BeitragVerfasst: Sa 27.01.07 22:09 
@JayEff, nur nicht aufgeben, wir haben alle mal klein angefangen. Nachdem ich vor 2 Jahren einen sehr guten Beispielcode (leider nicht hier im Forum) gefunden hatte, bin ich immer weiter gekommen (die Indy Beispiele selbst haben mir persönlich nicht weitergeholfen).

@alias5000
Erstmal am besten immer fürs eigene Netzwerk programmieren (Adresse "localhost" bzw. 127.0.0.1 = innerhalb des eigenen Computers, dann zum Clienten verbinden, wenn vorhanden). Bspw. ist meine lokale IP: 192.168.0.173, mein NetzCompi hat 192.168.0.223, also zu dem kann ich ohne Probleme verbinden.

Anders wirds, wenns ins Internet gehen soll. Wenn ich die IP meines Gegenübers habe und DIESER den Port (z.B. 5800) in seinem Router freigegeben hat, klappts auf Anhieb auch mit ihm.

Klingt einfach - ist es aber nicht - weil viele Kompoenenten ineinander greifen müssen, aber machbar ist (fast) alles, siehe das bekannte Sykpe, das auch mit Delphi programmiert wurde (ok, hier ist der Trick, das die ja noch ihren Server als Helper einsetzen).
Hux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 171



BeitragVerfasst: Sa 27.01.07 22:37 
Ich habs jetzt mal so gemacht, dass das Serverprogramm die IP und den benutzten Port auf einen WebSprace hochlaedt und der Client es sich von dort dann runterlaedt und sich dann mit dem Server verbindet.

BTW...Kennt einer ein gutes Tutorial zu der idTCP Komponente, bzw. zu Indys allgemein?
Ich hab mir das von dsdt.info mal angeschaut aber weitergeholfen hat mir das nicht wirklich da dort alles sehr knapp beschrieben ist.

Greetz, Hux.
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: So 28.01.07 16:39 
Huhu Hux :wave:

Da das Topic hier nun nicht mehr allzuviel mit einem Ping zu tun hat (eigentlich ja auch nie hatte :mrgreen:) wärs nett, wenn du den Titel anpassen könntest, dass andere auch wissen, worums hier eigentlich geht ;)

Vielen Dank,
raziel

_________________
JSXGraph
basti_1984
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 104

Linux, Win Xp, Win 2000
Delphi, C, C++, PHP,
BeitragVerfasst: Mo 29.01.07 12:52 
user profile iconraziel hat folgendes geschrieben:
Huhu Hux :wave:

Da das Topic hier nun nicht mehr allzuviel mit einem Ping zu tun hat (eigentlich ja auch nie hatte :mrgreen:) wärs nett, wenn du den Titel anpassen könntest, dass andere auch wissen, worums hier eigentlich geht ;)

Vielen Dank,
raziel


Hallo du solltest vielleicht erwähnen, mit welchem System du arbeiten möchtest. Linux / Windows, des weiteren solltest du bedenken, je nach größe der Pakete diie du ins netz schickst dein traffic ziemlich hoch geht und somit eine verbindung zu einem anderen rechner / bzw. ins internet sehr langsam werden kann.

schreib mal was das program genau machen soll. am einfachsten wäre es dein programm übers netzwerk zu starten und ihm einige parameter zu übergeben.
Hux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 171



BeitragVerfasst: Mo 29.01.07 16:31 
Hallo !

Auf dem Computer auf dem es ausgefuehrt werden soll, ist Windows 98 installiert.
Das Programm soll Zahlen o.Ä von einem anderen Computer erhalten und diese dann auswerten.
Die Pakete die ich ins Internet schicke werden sicherlich nicht sehr groß sein da es nur eine Zahl ist (Also 1 Byte).

Greetz, Hux.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 29.01.07 16:49 
Moin!

user profile iconHux hat folgendes geschrieben:
Ich hab mir schon die BasicClientServer Demo angeschaut und bei mir tut es.

Meinst du das hier? ;) Oder was anderes?

user profile iconHux hat folgendes geschrieben:
Dann hab ich es an einem Kumpel verschickt und er konnte mir aber keine verbindung zu mir herstellen.

Sofern du das gelinkte Tut meinste, dann bist du entweder am Router-Port-Forwarding oder an der Firewall des Server-Computers gescheitert. Also: zum Test Firewall auf dem Server-PC deaktivieren (oder eben nur den Port freigeben) und - falls ein Router im Einsatz ist - in der Anleitung nachlesen, wie man ein Portforwarding (heißt manchmal auch "virtual Server") einrichtet. Dann gibt es eigentlich keinen Grund mehr, warum das nicht klappen sollte. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am Mo 18.02.08 02:38, insgesamt 1-mal bearbeitet
Raffo
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 300



BeitragVerfasst: Mo 29.01.07 16:52 
Wenn Dir die Firewall nix ausmacht, dann versuch doch einfach mal die Indy Demos (falls vorhanden?) - da gibts jedenfalls einfache Client-Server Beispiele. Ansonsten würde ich Dir raten, eben nach diesem Stichwort (Client Server) hier im Forum zu suchen.