BERemoteClientStart()
BERemoteClientStart() – BE Remote-Client
Eine BE-Applikation wird als Client-Exe aktiviert.
Die Funktionen BeRemoteServerStart( nPortNr ), BeRemoteServerStop( nPortNr ), BeRemoteClientStart( cRemoteHost, nRemotePort ), BeRemoteClientStop( cRemoteHost, nRemotePort ), BeRemoteExecute( cRemoteHost, nRemotePort, cCodeblock, \[lAntw\] ) dienen zum Ausführen eines Codeblocks auf einem entfernten Rechner (oder einfach einer anderen BE-Instanz).
Als "Server-Exe" wird die Exe verstanden, auf der ein BeRemoteServerStart() ausgeführt wurde.
Die Client-Exe muss die IP-Adresse oder den Namen des PC, sowie den Port der Server-Exe kennen (sprich: als Parameter in den entsprechenden Funktionen übergeben bekommen).
Zum Ablauf: Eine BE-Applikation wird als Server-Exe aktiviert (durch Aufruf von BeRemoteServerStart()). Die Server-Exe wartet jetzt im Hintergrund auf den Empfang einer Sendung einer Client-Exe.
Eine BE-Applikation wird als Client-Exe aktiviert (durch Aufruf von BeRemoteClientStart()). Die Aktivierung ist nur möglich, wenn die Server-Exe bereits aktiviert wurde! Die Client-Exe ist jetzt bereit einen Codeblock durch Aufruf von BeRemoteExecute() an die Server-Exe zu senden.
Kommt eine Sendung bei der Server-Exe an, wird der gesendete Codeblock sofort ausgeführt und das Ergebnis als Antwort ggf. zurückgesendet (falls lAntw = True).
Die Client-Exe wartet max. nTimeOut Sekunden (0 = unbegrenzt) auf die Antwort der Server-Exe.
Zu beachten: Die Kommunikation erfolgt über IP.
Die gemeinsame Port-Nr. dient zur gegenseitigen Identifizierung der Exen. Die Port-Nr. sollte in einem Bereich zwischen 50000 und 64000 liegen, um Konflikte mit der BE-Funkscanner-Kommunikation zu vermeiden.
Eine BE-Applikation kann gleichzeitig als Server- und Client-Exe aktiviert werden. Server- und Client-Exe können sich auf dem gleichen PC befinden (müssen sie aber nicht).
Parameter | Beschreibung |
---|---|
cRemoteHost:C | IP-Adresse bzw. Name des PC auf dem die Server-Exe läuft |
nRemotePort:N | Port-Nr. des PC auf dem die Server-Exe "horcht" |
Rückgabewert
Keiner
Beispiel
| cServer |
cServer := 'be-neu', // oder z.B.: 192.168.1.1
startseq,
BeRemoteClientStart(cServer, 55300),
if BeRemoteExecute(cServer, 55300, 'JN("Alles klar?")', true) then
// Auf Bestätigung der Meldung warten und Ergebnis interpretieren
Meld("Es war alles klar!"),
endif,
// Ergebnis nicht abwarten
BeRemoteExecute('be-wxp', 55300, 'Call("ServerIndiProg", 4711)', false)
onerror,
WriteLn('ERROR: ' + GetErrorText()),
stopseq,
BeRemoteClientStop(cServer, 55300),