Autor |
Beitrag |
IhopeonlyReader
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Do 03.05.12 18:43
Guten Tag,
ich würde gerne eine Abfrage starten, welche auf einem einzelnen PC kein Problem wäre... jedoch würde ich gerne Einen String auf einen Server laden (nur von meinem PC) (den ich wenn möglich selbst starten kann) kann und diesen dann von einer anderen Anwendung (auf einem anderen PC)nutzen kann....
Das auf den Server laden muss nicht umbedingt eine EXE sein (kann auch glaub ich ne Inet Seite sein oder?), aber das Abfragen auf jeden Fall !
So habe ich mir das bis jetzt gedacht:
- Ich habe eine Exe, die mir einen String von mir in ein Edit Feld eingebeben, auf einen Server hochlädt (ich denke dazu sind DdeServer geeignet)
- Eine weitere Exe, die den String von demselben Server runterlädt und dann entsprechend damit weiterarbeitet (Das weiterarbeiten ist nicht das Problem);
Aber wie kann ich einen String "online" stellen?
- ohne kosten
Mir fehlt die Erfahrung in Netzwerkprogrammierung  .. und würde gerne mehr darüber lernen. Jedoch sind überall nur Informationen zu den Indy-Komponenten  .
Da ich Delphi 7 habe und da die Indy- Seite "Tod" ist fällt das leider aus...
Ich hoffe ihr könnt mir helfen.. (Ihr findet immer eine Lösung  )
Zuletzt bearbeitet von IhopeonlyReader am Do 10.05.12 16:17, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 03.05.12 22:42
IhopeonlyReader hat folgendes geschrieben : | Da ich Delphi 7 habe und da die Indy- Seite "Tod" ist fällt das leider aus... |
Bei mir ist die Seite erreichbar. Hast du vielleicht die falsche Adresse eingegeben?
Über die Downloadseite kommst du via SVN oder via Paketdownload an die aktuellste Version:
www.indyproject.org/.../DevSnapshot.DE.aspx
--> [url]indy.fulgan.com/ZIP/[/url]
Für diesen Beitrag haben gedankt: IhopeonlyReader
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 03.05.12 22:42
Moin!
IhopeonlyReader hat folgendes geschrieben : | Mir fehlt die Erfahrung in Netzwerkprogrammierung .. und würde gerne mehr darüber lernen. Jedoch sind überall nur Informationen zu den Indy-Komponenten .
Da ich Delphi 7 habe und da die Indy- Seite "Tod" ist fällt das leider aus... |
Dann schau mal hier rein, damit solltest du weiter kommen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Fr 04.05.12 17:01
Jo die Indy Komponenten (10) sind bei meiner Delphi 7 PE installliert... Vielen Dank
So nun aber wieder zu meiner Frage, wie kann ich damit jetzt etwas auf eine Seite "hochladen" und abfragen? ich habe jetzt verdammt viele neue Komponenten und bin damit überfordert, da es ca 20 Komponenten gibt die Server erstllen.. (idUDPServer, idCMDTCPServer...) womit wäre es am besten??
Nochmal: Delphi7 PE
+ Indy 10 Komponenten (6 Teile: IndyClients, IndyServers, IndyI/OHandlers, IndyIntercepts, IndyMisc und IndySASL)
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 04.05.12 18:18
Moin!
IhopeonlyReader hat folgendes geschrieben : | wie kann ich damit jetzt etwas auf eine Seite "hochladen" und abfragen? |
Deine Frage ist zu unspezifisch, so kann man dir nur schlecht was empfehlen.  Ich mach mal ein Beispiel, wie man deine Frage analog auffassen könnte: "Ich möchte jemandem eine Information schicken und wieder bei ihm abfragen können, wie mache ich das am besten?"
Tja, du könntest eine Email schicken, anrufen, einen Brief schreiben, vorbeigehen und persönlich sprechen... zum Abfragen der Info das Ganze in der umgekehrten Richtung...  Wobei wir noch nicht mal darüber gesprochen haben, wer dieser "jemand" ist und welche Möglichkeiten diesem zur Verfügung stehen.
Am besten beschreibst du mal, was das werden soll und worauf das genau abzielt, sonst kommen wir nicht wirklich weiter.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Fr 04.05.12 20:43
Es soll von mir ein String hochgeladen werden (wenn möglich Memo.lines.savetofile(INTERNET); )
dann soll der String von meinem rausgegebenen Spiel gelesen werden, so dass er den String hat (Memo.lines.loadfromfile(INTERNET)
Wenn möglich sollte der User(vom Spiel) nicht einfach auf eine Interseite gehen können und den String dort sehen.
Es soll dazu dienen, einen "CODE" am allerersten Start des Spieles abzufragen.
Hierdurch behalte ich einen Überblick, wer dieses Spiel bestizt,
ebenfalls kann ich über eine Zeile (vorher festgelegt) im Memo den einen String abfragen lassen, ob es eine neuere Version gibt. z.B. soll er in Zeile 5 des Memos entweder nach ja oder nach nein suchen, wenns nicht existiert dann solll er "unbekannt" ausgbeben, aber das ist alles kein problem !
Ich möchte nur gerne wissen, wie ich den String so online bekomme, dass er von jedem Computer, der die Abfrag-exe besitzt gelesen und damit weiterarbeiten kann.
 Hoffe ich habe das nocheinmal verständlich geschrieben
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 04.05.12 20:48
Dann brauchst du zu allererst einen Server im Internet. Dafür kannst du zum Beispiel Webspace mieten.
Auf dem kann dann ein Skript deine Eingaben verarbeiten.
Nebenbei:
Ein Memo hat damit wohl eher wenig zu tun, hier geht es um Daten, nicht um die Anzeige von Text.
Davon abgesehen ist die Frage, ob die Nutzer ein solches Tracking haben möchten. Zumindest sollte vorher darauf hingewiesen werden.
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Fr 04.05.12 20:55
jaenicke hat folgendes geschrieben : | ob die Nutzer ein solches Tracking haben möchten. Zumindest sollte vorher darauf hingewiesen werden. |
tracking?
außerdem dient es auch zur abfrage eines Codes, wenn man den nicht kennt, dann kann man nicht spielen (den muss man nur 1x eigeben)
tracking? ich behalte so im auge, dass es nur die personen es haben, die es haben sollen Moderiert von Narses: Beiträge zusammengefasst jaenicke hat folgendes geschrieben : | Dann brauchst du zu allererst einen Server im Internet. Dafür kannst du zum Beispiel Webspace mieten.
Auf dem kann dann ein Skript deine Eingaben verarbeiten.
|
ich habe mir das mit dem Server schon gedacht... und auf deine Antwort hin mich in einige Foren reingelsen
Allerdings kamen da immer Aussagen, dass es pro KB/MB oder GB entsprechend einen Betrag kostet
Gibt es denn keine Seite, die einen Server kostenlos zur Verfügung stellt?  <- Anderes Thema
So wieder zum eigentlichen Thema, kann ich den Server auch über meinen eigenen Rechner laufen lassen?
Der wäre dann zwar nicht daueraktiv, aber das ist zum testen und starten glaub ich erstmal die einfachste Netzwerkhosting Methode oder?
Wenn ich dann weiß, wie ich meinen Computer als Hoster zur Verfügung stelle, würde ich noch gerne wissen, ob ich dann den STRING einfach in eine Datei schreiben kann, die ich für jeden Computer zugänglich mache (in nem normalen HeimNetzerk per lan kann man die dateien ja (per senden an) für das Netzwerk erreichbar machen, die könenn dann auf Netzerk gehen, meinen PC auswählen und sich die Datei ziehen, das könnte auch theoretisch ein Programm... aber ich will das ja nicht per Heiomnetzerk sondern per internet machen... Wie ist das möglich? Welche ports sollte ich am ehesten freishcalten ( 80? )... freu mich auf eure antworten
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 05.05.12 18:56
IhopeonlyReader hat folgendes geschrieben : | So wieder zum eigentlichen Thema, kann ich den Server auch über meinen eigenen Rechner laufen lassen?
Der wäre dann zwar nicht daueraktiv, aber das ist zum testen und starten glaub ich erstmal die einfachste Netzwerkhosting Methode oder? |
Zum Testen eignet sich am besten ein portabler kleiner Server wie MoWeS oder XAMPP:
www.chsoftware.net/d...esportable/mowes.htm
www.apachefriends.org/de/xampp.html
Aber diese sind aus Sicherheitsgründen nicht für den echten Betrieb gedacht. Zum schnellen Testen sind sie aber ideal.
Zuerst solltest du dich jedenfalls damit beschäftigen und es erst einmal zum Laufen bringen!
Danach kommt dann die Frage wie du das ins Internet bringst:
Natürlich kannst du auch bei dir auf dem PC einen von außen erreichbaren Server laufen lassen. Sinnvoll ist das weniger, schließlich kostet ein kleiner Webspace heute ja nicht mehr viel. Inklusive .de Domain bekommst du hier z.B. Webspace für 1,11€ pro Monat:
www.webspace-verkauf...insteiger-paket.html
Zudem gibt es kostenlose Angebote, aber mit denen kenne ich mich nicht gut aus, da ich (nach eigenen Erfahrungen vor einigen Jahren) wenig davon halte. Für deinen Zweck sollten aber auch die ausreichen, aber da die sich meist mit Werbung finanzieren ist ein reiner Zugriff durch ein eigenes Programm nicht überall erlaubt.
Wenn du es über deinen eigenen PC machen willst, musst du den Port durchleiten, ja. Welchen kannst du dir selbst überlegen, aber ich würde einen etwas exotischeren als 80 nehmen, damit nicht jeder gleich deinen Server findet.
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 07.05.12 15:39
jaenicke hat folgendes geschrieben : | Wenn du es über deinen eigenen PC machen willst, musst du den Port durchleiten, ja. Welchen kannst du dir selbst überlegen, aber ich würde einen etwas exotischeren als 80 nehmen, damit nicht jeder gleich deinen Server findet. |
OK, wie ich den in der Firewall etc freischalte ist nicht das Problem, aber wie genau lass ich eine Delphi-Exe auf diesen Port zugreifen? kann ich das so einstellen, dass ich irgendwie in den Quelltext schreibe Memo.loadfromfile(IP+Port+Datei)?
Denn wenn ich meinen Computer als Server laufen lassen würde würde ich das gerne so gestalten, dass ich eine Datei auf meinem Computer freigebe, die sich jeder über die IP+Port dann ansehen kann...
Ich gehe davon aus, dass soetwas möglich ist und bitte euch um Ansätze für dieses Vorhaben.
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 07.05.12 16:11
Ich weiß nicht was du da immer mit einem Memo willst. Du willst doch dem Benutzer gar nix anzeigen oder ihn etwas eingeben lassen, oder?
Zum Thema: Schau dir einmal Indy und TIdHttp an. Damit kannst du eine Webseite mit POST- oder GET-Parametern aufrufen. Zum Beispiel so, auch wenn das noch nicht ganz ist was du brauchst, aber nur so als Idee: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| uses IdHttp;
var HttpLoader: TIdHttp; PageContents: String; begin HttpLoader := TIdHttp.Create; try PageContents := HttpLoader.Get('http://www.example.com'); finally HttpLoader.Free; end; end; |
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 07.05.12 16:25
jaenicke hat folgendes geschrieben : | Ich weiß nicht was du da immer mit einem Memo willst. Du willst doch dem Benutzer gar nix anzeigen oder ihn etwas eingeben lassen, oder?
|
Ich bin's einfach gewohnt die Datein aus einem Memo zu laden  und dann entsprechend mit dem String davon weiterzuarbeiten  so brauch ich die Datei nicht mehrmals öffnen sondern kann alles entsprechend aus einem Memo laden (dass dan natrüclich unsichtbar/ verstekct ist memo.visible:=FALSE;)
Wie gerade gesagt, ziehe ich es vor das ganze über meinen PC und nicht über eine Inetseite zu machen
Ebenfalls würde ich gerne die Datei von meinem PC freigeben für ein Programm(bzw. für einen Port)... wie geht das?
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 07.05.12 16:46
IhopeonlyReader hat folgendes geschrieben : | Wie gerade gesagt, ziehe ich es vor das ganze über meinen PC und nicht über eine Inetseite zu machen  |
Du kannst das ja wie gesagt auch über einen lokalen Webserver machen. IIS ist bei Windows dabei, Apache gibts zum Download, ...
Wobei dir klar sein muss, dass du damit Angreifern einen Weg zu deinem PC ebnest, du musst also zumindest schauen, dass dein Windows immer aktuell und eine Firewall plus gutem Antivirenprogramm aktiv sind.
IhopeonlyReader hat folgendes geschrieben : | Ebenfalls würde ich gerne die Datei von meinem PC freigeben für ein Programm(bzw. für einen Port)... wie geht das? |
Äh.. Dateifreigabe ins Internet? Ist das dein Ernst?  Schonmal das Wort Sicherheit gehört?
Davon ganz abgesehen: Was, wenn zwei gleichzeitig auf die Datei zugreifen? Das ist im lokalen Netz schon ein Problem, aber im Internet? Vergiss das ganz schnell wieder... so geht das nicht.
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 07.05.12 17:49
1. NUR EINZELNE DATEIEN freigeben... (wie das im heimnetzerk)
2. Port für internet freimachen... hast recht, aber sie sollen eben nur auf diese einzelne Datei zugreifen können bzw auf einen Order (nat. mit inhalt) in dem ich dann die etsprechenden Dateien lagere.
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Do 10.05.12 16:11
So ich habe mich jetzt ein wenig umentschieden und bin dabei den Sting per Indycomponenten zu verschicken.
Leider finde ich hier immerwieder nur Threads/ Tutorials dazu, wie man DATEN verschickt, ich würde gerne nur einen String von einem "Server" zu einem Client verschicken.
- Client startet Programm, wenn Server Erreichbar -> Server sendet STring an Client
Ist es möglich diesen String zu "verschicken" ohne es in eine Textdatei zu schreiben, dann die Textdatei verschicken und dann den String aus der Textdatei zu lesen?
Bitte nennt mir die benötigten Komponenten (aus Indy 10, Delphi7PE komponenten+Internetkomponenten) und die Befehle
Freu mich auf eure Antworten
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 10.05.12 16:14
Moin!
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
3.4 Frage formulieren - Der richtige Titel: | Formuliere den Betreff deiner Themen so, dass der Leser (und damit möglicherweise dein Helfer) anhand des Titels bereits weiß, worum es in diesem Topic geht. Titel wie z.B. "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" machen nicht neugierig auf mehr, ehrlich. Auch "HILFEEEE!!!!" hat sich bisher nicht bewährt. Wenn du ein Topic eröffnest ist es höchstwahrscheinlich, dass du Hilfe brauchst. |
Einfach unten in deinem ersten Beitrag auf  klicken und den Titel ändern. Danke dir!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Do 10.05.12 16:21
Narses hat folgendes geschrieben : |
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. |
Der Titel ist geändert ... du bist sehr fix, gerade den Beitrag geschrieben, direkt geantwortet (ca 10 sek ?  )
GUTE ARBEIT !!!!
Jetzt wieder zum Thema:
zusatzinformationen: - Es sollen 2 Strings ausgetauscht werden (ich gehe davon aus, dass man den entsprechenden Befehl einfach 2x ausführt)
- Es brauch für den Benutzer nicht sichtbar sein, wieweit das Programm mit der Übertragung ist
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Do 10.05.12 18:35
Mit den Tipps die hier im Thread gegeben wurden kann man schon sehr viel anfangen. Für die ersten Tests kannst du so vorgehen:
- XAMPP lokal installieren (www.apachefriends.org/de/xampp.html)
- Ein PHP-Script schreiben das Daten via GET annimmt und in einer Datei auf dem Server speichert. Außerdem soll das Script die Daten auch wieder auslesen können.
- Ein Delphi-Programm schreiben das die Daten via TIdHTTP an den Server übermittelt
- Ein weiteres Programm schreiben das die Daten vom Server holt
Um das umzusetzen sind defintiv folgende Grundkenntnisse nötig:
Da hast du dir ganz schön was vorgenommen
Hier noch ein paar Code-Schnipsel als "Denkanstoß":
Daten per Delphi an einen Server senden und empfangen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var HttpLoader: TIdHttp; PageContents: String; begin HttpLoader := TIdHttp.Create; try PageContents := HttpLoader.Get('http://localhost/dein_script.php?param1=abc¶m2=xyz'); finally HttpLoader.Free; end; end; |
Ein PHP-Script das Daten annehmen und ausgeben kann:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| <?php
$param_1 = htmlentities($_GET['param1']); $param_2 = htmlentities($_GET['param2']);
if(($param_1 != '') and ($param_2 != '')) { } elseif($param_1 == 'anfrage') { $datei_inhalt = file_get_contents('dateiname.txt'); echo $datei_inhalt; } else { die('ERROR!!!!!!!'); } ?> |
Damit kannst du jetzt ein bisschen rumspielen
Achtung: Das sind nur Beispiel-Codes!
Für diesen Beitrag haben gedankt: IhopeonlyReader
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Do 10.05.12 19:57
Andreas L. hat folgendes geschrieben : |
Da hast du dir ganz schön was vorgenommen |
Das weiß ich  Aber man muss sich auch mal was vornehmen
Andreas L. hat folgendes geschrieben : | Achtung: Das sind nur Beispiel-Codes! |
mhh... Das weiß ich auch xD..
Vielen Dank für deine Mühe !!
Ich werd das ganze so ausprobieren und ausarbeiten...
Sonst habe ich mir zur Not selbst schon eine (schlechte aber mögliche) Alternative zur Recht gelegt..
Die würde dann ca so aussehen:
nötig dafür:
- Chatserver (hab ich schon fertig)
- Client (auch fertig)
- Abfrage/Vergleichsprozedure <- müsste ich schreiben (aber kein Problem  )
Ich würde dann sozusagen einen Chataufbauen, nur ohne EingabeFelder...
Der Client verbindet sich mit dem server, der Server schickt alle regelmäßig den String an alle Verbundenen.
Wenn client den String empfangen hat, dann disconnecten.
Wie gesagt wäre eine Alternative  Aber eben eine sehr schlechte  ... (pro String dann eben 1 server)
oder ich würde das so machen, dass der Client bestimme String schickt (z.B. 'Abfrage1') und der Server guckt, was es für ein String ist, wenn es 'Abfrage1' ist dann schick foolgendes zurück.
Aber das eine sehr notgedrungene Alternative, die SEHR viele Nachteile mit sich bringt... Deshalb bin ich froh über deine Möglichkeit und werde diese wenn ich Zeit habe ausprobieren...
Gebe dir trotzdem ein DANKE, da deine Antwort genau das ist was ich als "Anstoß"/Ideenreiß brauche
|
|
Blup
      
Beiträge: 174
Erhaltene Danke: 43
|
Verfasst: Fr 11.05.12 10:41
Ein Webservice ist hier vieleicht die beste Lösung.
www.delphi-treff.de/...services/einleitung/
|
|
|