Seite 1 von 1

Client-Server --- server verareitet befehle

Verfasst: 08.03.2005 16:39
von Pure-r-Freak
diesmal würde ich gerne wissen wie man z.b. durch SendNetworkString() einen "befehl" an einen server schicken kann, der dann auch ausgeführt wird.

Bsp.
Client-> SendNetworkString(Hallo.exe)
Server-> startet Hallo.exe

:freak: :freak: :allright: Danke

Verfasst: 08.03.2005 16:45
von Leo
Der Client sendet "run:Hello.exe"
Der Server guckt jetz mit Mid(receivedstring.s,0,3) ob da ein run
steht und schneidet sich mit Mid den Parameter, also das Hello.exe
rauß (Mid(receivedstring.s,5,Len(receivedstring.s)-3)
und führt RunProgram(parameter.s) aus

Verfasst: 08.03.2005 17:42
von Pure-r-Freak
danke für deine antwort, aber ich bekomme das irgendwie nicht hin
könnte mir vielleicht jemand ein Beispiel posten ?

:freak: :allright:

Verfasst: 19.03.2005 20:20
von pogi02
Was bringst da net zusammen es ist ganz einfach.

Du sendest einfach ein Schlüsselwort.

z.B.

SendNetworkString(ClientID, ".runprog|datei.exe")

Dann lässt du denn Server prüfen ob das Schlüsselwort .runprog gesendet wurde und Mittels StringField(massage$, Index, "|") liest du aus um welchen Programm es sich handelt.

Das Schlüsselwort kannst du z.B. mit Left prüfen.

Ganze Funktion sieht dann ca. so aus

If Left(massage$, 8 ) = ".runprog"
programm$ = StringField(massage$, 1, "|")
EndIf

Ist natürlich nur schnell gemacht aber so dürfte es einigermassen funktionieren.

eventuell..

Verfasst: 20.03.2005 23:52
von OptimusPrime
wäre es wichtig, zu erklären, dass der client nicht einen "Befehl" senden kann,
z.b. :
wenn du ein programm vom client starten möchtest, reicht es nicht,
den programmnamen "beispiel.exe" zu senden und der server führt das programm aus.

du musst dir also überlegen, welches "schlüsselwort" der client zusammen mit dem programmnamen "beipspiel.exe" sendet (vielleicht auch als 2. variable", damit der server nun weiss, dass er das programm beispiel.exe ausführen soll.

dafür machst du dann eine abfrage, das schlüsselwort kann ja sein, was du möchtest, kann auch nur eine zahl oder ein buchstabe sein.
du kannst das theoretisch auch ganz weglassen, allerdings würde der

server dann bei allen daten, die er bekommt, immer versuchen, diese als
programm auszuführen....;o)

wichtig ist auch, dass der server weiss, in welchem verzeichnis sich das zu startende programm befindet, also entweder hast du ein festes verzeichnis, dessen pfad der server kenn, oder du musst den pfad noch vom vclient mitsenden.

merke dir nur, du kannst keine direkten befehle senden, nur Strings$ oder andere Variablen (Zehlaen, Binärcode etc), was der Server am ende damit macht, dass liegt an dem programm, dass du dafür geschrieben hast.

mfg

Re: eventuell..

Verfasst: 23.03.2005 14:07
von pogi02
OptimusPrime hat geschrieben:wäre es wichtig, zu erklären, dass der client nicht einen "Befehl" senden kann,
z.b. :
wenn du ein programm vom client starten möchtest, reicht es nicht,
den programmnamen "beispiel.exe" zu senden und der server führt das programm aus.

du musst dir also überlegen, welches "schlüsselwort" der client zusammen mit dem programmnamen "beipspiel.exe" sendet (vielleicht auch als 2. variable", damit der server nun weiss, dass er das programm beispiel.exe ausführen soll.

dafür machst du dann eine abfrage, das schlüsselwort kann ja sein, was du möchtest, kann auch nur eine zahl oder ein buchstabe sein.
du kannst das theoretisch auch ganz weglassen, allerdings würde der

server dann bei allen daten, die er bekommt, immer versuchen, diese als
programm auszuführen....;o)

wichtig ist auch, dass der server weiss, in welchem verzeichnis sich das zu startende programm befindet, also entweder hast du ein festes verzeichnis, dessen pfad der server kenn, oder du musst den pfad noch vom vclient mitsenden.

merke dir nur, du kannst keine direkten befehle senden, nur Strings$ oder andere Variablen (Zehlaen, Binärcode etc), was der Server am ende damit macht, dass liegt an dem programm, dass du dafür geschrieben hast.

mfg
Hää???

Das ist doch das was ich beschreiben hab zuerst prüft der server ob ein solcher befehl rein kommt

If Left(massage$, 8 ) = ".runprog"

und das erste was hinter dem | dann steht ist das programm das er ausführen soll

programm$ = StringField(massage$, 1, "|")

wenn er es in dieser form sendet SendNetworkString(ClientID, ".runprog|datei.exe")