Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   einzelne Variable versenden (https://www.delphipraxis.net/152883-einzelne-variable-versenden.html)

Noob1990 11. Jul 2010 11:31

einzelne Variable versenden
 
Hallo... ich bins mal wieder :D
so jetzt wo ich mich wieder ein wenig in delphi eingearbeitet habe und die simplen dinge behersche außer klassen bezeichnung und erstellung ( da muss ich ab un zu noch ma nachshcauen) wollte ich mich mal so langsamm ans internet/netzwerk wagen.Sprich ich wollte zewcks übung nur eine einzelene variable zuerst an eine bestimmte Ip adresse senden und dann an eine unbestimmte( sprich 2 leute ham ein un das selbe Programm und das Programm tauscht daten via internet aus ähnlich wie ein computerspiel wo man auch nie weiß wo der gegenüber ist geschweige den wie seine IP adresse ist) nun naja aber erst mal wie gesagt will nur eine einzelnen wert einer Variable zu einer bestimmten Ip adresse senden wo das gleiche delphi Programm dann diesen in ein edit feld anzeigt dieses edit feld kann man dann wieder ändern und zurück zum andern rechner schicken wo dieses wieder in einen edit feld geändert werden kann und so weiter und so weiter.....
so die benutzeroberfläsceh ist schon fertig ist ja das eifnachste xD aber was für befehle bzw was für ,von delphi vorgegebene methoden gibt es um dies zu bewerkstelligen ich hab nämlich keien Ahnung :(

mkinzler 11. Jul 2010 11:34

AW: einzelne Variable versenden
 
Dafür müsstest Sockets verwenden. Oder besser abtraktere Netzwerkkomponenten ( z.B. Indy, Synapse, ICS)
Zudem solltest du dich zuerst mit etwas Netzwerktheorie befassen

Noob1990 11. Jul 2010 11:36

AW: einzelne Variable versenden
 
wo bzw wie kann ich mich am besten damit befassen......
bzw heißt es das es viel schwerer ist als gedacht?

mkinzler 11. Jul 2010 11:37

AW: einzelne Variable versenden
 
Grundsätzlichg nicht, man sollte halt wissen wie Netzwerke funktionieren

Noob1990 11. Jul 2010 11:39

AW: einzelne Variable versenden
 
also bis jetzt hatte ich so das bild von netzwerken das halt alles über Ip adressen läuft sprich computer können nur miteinander komunizieren wenn sie ihre IP adressen (was wie ne normale postadresse ist) kennen das selbe spiel ist ja auch mit meinen drucker und so xD da muss mein rechner ja auch die IP adresse wissen um den dann das datenpacket was er drucken soll zu sschicken
oder steckt da etwa noch mehr dahinter?

mkinzler 11. Jul 2010 11:41

AW: einzelne Variable versenden
 
Das meinte ich ja. Du musst die Adresse deines Gegenübers kennen. es schien ine deiner ursprünglichen Frage so, als ob dir das nicht klar wäre

Matze 11. Jul 2010 11:46

AW: einzelne Variable versenden
 
Zitat:

Zitat von Noob1990 (Beitrag 1034744)
oder steckt da etwa noch mehr dahinter?

Der ist gut. ;)

Was passiert bei Paket-Kollisionen? Werden sie erkannt? Kann das zu Datenverlust führen oder werden Kollisionen vermeidet bzw. Pakete dann neu gesendet?
Stichwort: CSMA/CD
Da gibt es natürlich noch ganz andere Dinge. Also es steckt viel mehr dahinter.

Das nur zu deiner Frage. ;)
Doch so genau musst du das für deine Aufgabenstellung nicht wissen.

Wie man mit den Indys sowas löst, sollte in der DP zu finden sein. Evtl. unter dem Stichwort "Chat" (das ist im Prinzip nichts anderes als ein Austausch von Variablen).

Noob1990 11. Jul 2010 11:46

AW: einzelne Variable versenden
 
ne zu anfangs will ich ja an eine bekannte IP adresse einen wert schicken sagen wir so vom abreitszimmerrechner zum wohnzimmer rechner beide IPs siind mir ja bekannt.
aber wenn ich damit mich dann sicher fühle wollte ich dann einen schritt weiter gehen und dann sozusagen das programm so schreiben das ich zu jeden der das programm hat quasi diesn wert schicken kann.. also als beispiel jetzt irgend nen spiel ich spiele ja mit jmd irgend nen strategie spiel über internet und ich kenne seine Ip adresse auch net aber ich sehe in trotzdem in der lobby... wie das ggeregelt ist weiß ich ja nciht weil wie gesagt eigentlic müsste ich ja dann die Ip adresse von den jenigen kennen

aber erst mal klein anfangen und zwichen meinen beiden rechnern hin und her schicken :D

mkinzler 11. Jul 2010 11:48

AW: einzelne Variable versenden
 
In diesem Fall gibt es einen Server, der die IP der möglichen Empfängern kennt.

Noob1990 11. Jul 2010 11:49

AW: einzelne Variable versenden
 
Zitat:

Zitat von Matze (Beitrag 1034746)
Zitat:

Zitat von Noob1990 (Beitrag 1034744)
oder steckt da etwa noch mehr dahinter?

Der ist gut. ;)

Was passiert bei Paket-Kollisionen? Werden sie erkannt? Kann das zu Datenverlust führen oder werden Kollisionen vermeidet bzw. Pakete dann neu gesendet?
Stichwort: CSMA/CD
Da gibt es natürlich noch ganz andere Dinge. Also es steckt viel mehr dahinter.

Das nur zu deiner Frage. ;)
Doch so genau musst du das für deine Aufgabenstellung nicht wissen.

Wie man mit den Indys sowas löst, sollte in der DP zu finden sein. Evtl. unter dem Stichwort "Chat" (das ist im Prinzip nichts anderes als ein Austausch von Variablen).

steht da auch was Indys sind und so weil ich kann mir da nix drunter vorstellen bislang habe ich in delphi immer nur VlC Formulare für win 32 erstellt was das ist wusste ich auch nie nur mein lehrer hat uns immer gesagt das wir da drauf klciken sollen wenn wir ein neues programm programmieren wollen-.- jetz hab ich kein lehrer mehr und muss mir alles selber beibringen bzw erlessen und erfragen ;)

Noob1990 11. Jul 2010 11:50

AW: einzelne Variable versenden
 
Zitat:

Zitat von mkinzler (Beitrag 1034748)
In diesem Fall gibt es einen Server, der die IP der möglichen Empfängern kennt.

ahhh okay.... aber bei älteren spielen und vor allem im netzwerk kann doch jeder selber der host sein entnihmt dann das programm die möglichen Ip adressen von windows von der Arbeitsgruppe inder man sich befindet?

mkinzler 11. Jul 2010 11:51

AW: einzelne Variable versenden
 
INDY ist bei Delphi dabei. Es handelt sich um Netzwerkkomponeten. Diese Kapseln Sockets und implementieren auch Protokolle (HTTP, FTP, SMTP, ...) auf höheren Schichten

Matze 11. Jul 2010 11:52

AW: einzelne Variable versenden
 
Zitat:

Zitat von Noob1990 (Beitrag 1034747)
wie das ggeregelt ist weiß ich ja nciht weil wie gesagt eigentlic müsste ich ja dann die Ip adresse von den jenigen kennen

Musst du auch ja. Die einzelnen Rechner melden sich beim Server und damit weißt der Server, wer welche IP hat (der Server kann eine Exe sein, die auf einem Haupt-PC läuft).

Aber versuche erst die grundlegenden Dinge (Datenaustausch) umzusetzen.

Zitat:

Zitat von Noob1990 (Beitrag 1034749)
steht da auch was Indys sind und so weil ich kann mir da nix drunter vorstellen bislang habe ich in delphi immer nur VlC Formulare für win 32 erstellt was das ist wusste ich auch nie nur mein lehrer hat uns immer gesagt das wir da drauf klciken sollen wenn wir ein neues programm programmieren wollen-.- jetz hab ich kein lehrer mehr und muss mir alles selber beibringen bzw erlessen und erfragen ;)

Die Indy-Komponenten sind eine Komponentensammlung für Netzwerk- und Internetzugriffe. Je nach Delphi-Version sind diese bereits installiert. Du bekommst sie aber auch hier.

Noob1990 11. Jul 2010 11:53

AW: einzelne Variable versenden
 
ohh okay jetzt sehe ich grade das ich da noch EINIGEs lernen muss weil von deiner letzten antwort kam mir kein begriff bekannt vor xD

mkinzler 11. Jul 2010 11:53

AW: einzelne Variable versenden
 
Welche Begriffe meinst du?

Noob1990 11. Jul 2010 11:54

AW: einzelne Variable versenden
 
und wenn ich diese komponenten installiert habe sehe ich sie ganz normal in objektinspektor oder?

Matze 11. Jul 2010 11:55

AW: einzelne Variable versenden
 
Lass mich raten ;)

Zitat:

Zitat von mkinzler (Beitrag 1034751)
INDY ist bei Delphi dabei. Es handelt sich um Netzwerkkomponeten. Diese Kapseln Sockets und implementieren auch Protokolle (HTTP, FTP, SMTP, ...) auf höheren Schichten

Ja, die tauchen dort auf. Wenn du jedoch TurboDelphi nutzt, musst du sie dynamisch erzeugen.

Noob1990 11. Jul 2010 11:55

AW: einzelne Variable versenden
 
Zitat:

Zitat von mkinzler (Beitrag 1034754)
Welche Begriffe meinst du?

Diese Kapseln Sockets und implementieren auch Protokolle (HTTP, FTP, SMTP, ...)

mkinzler 11. Jul 2010 11:56

AW: einzelne Variable versenden
 
Es sind normale Komponenten, welche du auf das Formular legen kannst und dann im OI die Werte der Instanz festlegen kannst

Noob1990 11. Jul 2010 11:57

AW: einzelne Variable versenden
 
Zitat:

Zitat von mkinzler (Beitrag 1034758)
Es sind normale Komponenten, welche du auf das Formular legen kannst und dann im OI die Werte der Instanz festlegen kannst

ja meinte ich doch :D hab nur grad nen freudschen versprecher gehabt hab natürlich dei tool palette gemient und net den OI :D

mkinzler 11. Jul 2010 12:00

AW: einzelne Variable versenden
 
Zitat:

Zitat von Noob1990 (Beitrag 1034757)
Zitat:

Zitat von mkinzler (Beitrag 1034754)
Welche Begriffe meinst du?

Diese Kapseln Sockets und implementieren auch Protokolle (HTTP, FTP, SMTP, ...)

Wenn jemand aus einem anderen Land triffst, wessen Sprache du nicht spricht und der auch kein deutsch kann, könnt ihr euch unterhalten, versteht euch aber nicht.
Die Sprache kann man mit Protokollen vergleichen

Noob1990 11. Jul 2010 12:04

AW: einzelne Variable versenden
 
ahhh okayy

puhhhhhhhhhh das klingt nach ganz viel arbeit fürr mich um nur einen wert zwichen meine nbeiden rechnern zu schicken

also noch mal zusammen fassung.. ich muss indy für delphi downloaden und danach mich mit den komponenten mit hilfe von DP vertraut machen und dann erst(was wahrshceinlich nen bisschen dauern wird) könnte ich es vlt schaffen einen wert via netzwerk zu verschicken

so nun ist aber noch ma ne frage xD wenn ich es schaffen sollte diesen wert zu schicken wird ihn dann die firewall nciht blockieren? xD

mkinzler 11. Jul 2010 12:09

AW: einzelne Variable versenden
 
Vortiel der Protokolle ist es, dass man nicht unbedingt etwas von den Details wissen muss.

xZise 11. Jul 2010 14:53

AW: einzelne Variable versenden
 
Moin,
das mit der Firewall hängt immer davon ab, was das für eine ist. Wenn zum Beispiel nur der Router eine Firewall hat, dann könnt ihr innerhalb eures Netzes schicken wie ihr lustig seid. Erst wenn der Router routen muss (d.h. die Adresse liegt in verschiedenen Netzen) dann könnte die Firewall zuschlagen.

Und ganz so schwer ist das nun auch nicht ;) Du hast zwei Anwendungen und lässt zwischen beiden eine Verbindung aufbauen und kannst dann eigentlich schon fast übertragen.

Wichtig ist halt nur dass die Verbindung kompatibel/gleich ist. Also ich würde zum Beispiel TCP/IP oder UDP empfehlen. TCP/IP ist (evtl.) langsamer als UDP, aber du kannst dir sicher sein, dass die Pakete auch ankommen. Bei UDP hingegen kann es sein, dass das Paket irgendwo auf der Strecke verloren geht.

Aber beides läuft ähnlich ab: Du hast zwei Komponenten (kA ob in Indy das auch in einer geht). Einer lauscht auf neue Nachrichten und der andere versendet diese.

Dann sagst du nur noch dem Versender: Versende irgendwas (z.B. ein Byte mit den Wert 42) und schickst es an eine IP. Und jeder der mit der IP angesprochen wird (z.B. Broadcast vs. Unicast) empfängt dann den Wert und kann damit arbeiten.

Das ist so das grundlegende und ich hoffe ich habe nicht zu viel Mist verzapft. Wichtig ist eventuell bei allen Firewalls zwischen den Sender und Empfänger, dass sie den Port durchlassen. Aber solange du in dein Netzwerk bleibt, sind das (wie oben schon gesagt) nur die beiden Rechner der sendet und der Rechner der empfängt. Dann fragt Windows schon selber nach, ob die Firewall das durchlassen soll.

MfG
Fabian


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz