Hallo Sascha,
funktioniert. Das Ergebnis der Abfrage kommt jetzt in mmh wie folgt an:
10:05:25.713 - network: udp message from IP, size 32 bytes
10:05:25.716 - parser: parsing sequence: <UDP.SOCK><JAHR=2006></UDP.SOCK>
10:05:25.718 - parser: command: UDP.SOCK - JAHR=2006
10:05:25.718 - parser: reply sequence: <UDP.SOCK>JAHR=|OK</UDP.SOCK>
10:05:25.719 - commandserver: UDP send: IP:8002 data: SELECT c00 FROM movie WHERE c07=(2006)
10:05:25.736 - commandserver: UDP receive: IP:8002 data: |16 Blocks|300|An Inconvenient Truth|Babel|Blood Diamond|Das Leben der Anderen|Deja Vu|Dreamgirls|Pirates of the Caribbean: Dead Man's Chest|Hollywoodland|The Departed|The Good Shepherd|The Prestige|Volver|Cars|The Da Vinci Code|Penelope|Rescue Dawn|Notebook|Trixie
10:05:25.739 - commandserver: translated reply sequence: <UDP.SOCK>|16 Blocks|300|An Inconvenient Truth|Babel|Blood Diamond|Das Leben der Anderen|Deja Vu|Dreamgirls|Pirates of the Caribbean: Dead Man's Chest|Hollywoodland|The Departed|The Good Shepherd|The Prestige|Volver|Cars|The Da Vinci Code|Penelope|Rescue Dawn|Notebook|Trixie|OK</UDP.SOCK>
10:05:25.742 - network: message parsed
Der Commandserver:
[CONFIG];
ACTIVE;YES
SERVERIP;xxx.xxx.xxx.xxx
SERVERPORT;8002
SERVERMODE;ASCII
SERVERTIMEOUT;NONE
SERVERPROTOCOL;UDP
MATCHING=NORMAL
[COMMANDS];
SEND;\#;
TITEL;SELECT c00 FROM movie
JAHR;SELECT c00 FROM movie WHERE c07=(\#)
INFO;SELECT c01 FROM movie WHERE c00=(\#)
GENRE;SELECT c14 FROM movie WHERE c00=(\#)
RATING;SELECT c05 FROM movie WHERE c00=(\#)
[MAPPINGS];
\?\*;DATEN
Sobald ich unter Mappings was eintrage kommen keine Daten mehr rein.
Auch bei \*;DATEN das gleiche Ergebnis.
Was mach ich denn falsch?
Klaus
Ankündigung
Einklappen
Keine Ankündigung bisher.
[mmh] CommandServer
Einklappen
X
-
Hallo Klaus,
ich habe mit Perl eigentlich nichts am Hut, aber versuche mal Folgendes:
Code:[...] $res = $dbh->selectall_arrayref("$newmsg;") or die "Couldn't prepare statement: " . $dbh->errstr; ($senddata) = ""; foreach my $row (@$res) { ($data) = @$row; $senddata = "${senddata}|${data}"; } $sock->send(decode("utf-8","$senddata")); } die "recv: $!"; $dbh->disconnect();
Einen Kommentar schreiben:
-
Hallo Sascha,
hab versucht auf udp umzustellen und erhalte folgendes Ergebnis:
19:53:33.628 - network: udp message from 192.168.2.40, size 64 bytes
19:53:33.629 - parser: parsing sequence: <UDP.SOCK><SEND=SELECT c00 FROM movie WHERE c07=2006></UDP.SOCK>
19:53:33.630 - parser: command: UDP.SOCK - SEND=SELECT c00 FROM movie WHERE c07=2006
19:53:33.630 - parser: reply sequence: <UDP.SOCK>SEND=|OK</UDP.SOCK>
19:53:33.633 - commandserver: UDP send: 192.168.2.20:8000 data: SELECT c00 FROM movie WHERE c07=2006
19:53:33.638 - commandserver: UDP receive: 192.168.2.20:8000 data: |16 Blocks
19:53:33.640 - commandserver: translated reply sequence: <UDP.SOCK>|16 Blocks|OK</UDP.SOCK>
19:53:33.648 - network: message parsed
19:53:33.666 - commandserver: UDP receive: 192.168.2.20:8000 data: |300
19:53:33.670 - commandserver: translated reply sequence: <UDP.SOCK>|300|OK</UDP.SOCK>
19:53:33.688 - commandserver: UDP receive: 192.168.2.20:8000 data: |An Inconvenient Truth
19:53:33.690 - commandserver: translated reply sequence: <UDP.SOCK>|An Inconvenient Truth|OK</UDP.SOCK>
19:53:33.707 - commandserver: UDP receive: 192.168.2.20:8000 data: |Babel
19:53:33.708 - commandserver: translated reply sequence: <UDP.SOCK>|Babel|OK</UDP.SOCK>
19:53:33.726 - commandserver: UDP receive: 192.168.2.20:8000 data: |Blood Diamond
19:53:33.727 - commandserver: translated reply sequence: <UDP.SOCK>|Blood Diamond|OK</UDP.SOCK>
19:53:33.744 - commandserver: UDP receive: IP:8000 data: |Das Leben der Anderen
19:53:33.746 - commandserver: translated reply sequence: <UDP.SOCK>|Das Leben der Anderen|OK</UDP.SOCK>
19:53:33.763 - commandserver: UDP receive: IP:8000 data: |Deja Vu
19:53:33.765 - commandserver: translated reply sequence: <UDP.SOCK>|Deja Vu|OK</UDP.SOCK>
19:53:33.782 - commandserver: UDP receive: IP:8000 data: |Dreamgirls
19:53:33.783 - commandserver: translated reply sequence: <UDP.SOCK>|Dreamgirls|OK</UDP.SOCK>
19:53:33.800 - commandserver: UDP receive: IP:8000 data: |Pirates of the Caribbean: Dead Man's Chest
19:53:33.802 - commandserver: translated reply sequence: <UDP.SOCK>|Pirates of the Caribbean: Dead Man's Chest|OK</UDP.SOCK>
19:53:33.819 - commandserver: UDP receive: IP:8000 data: |Hollywoodland
19:53:33.821 - commandserver: translated reply sequence: <UDP.SOCK>|Hollywoodland|OK</UDP.SOCK>
19:53:33.838 - commandserver: UDP receive: IP:8000 data: |The Departed
19:53:33.839 - commandserver: translated reply sequence: <UDP.SOCK>|The Departed|OK</UDP.SOCK>
19:53:33.860 - commandserver: UDP receive: IP:8000 data: |The Good Shepherd
19:53:33.862 - commandserver: translated reply sequence: <UDP.SOCK>|The Good Shepherd|OK</UDP.SOCK>
19:53:33.880 - commandserver: UDP receive: IP:8000 data: |The Prestige
19:53:33.882 - commandserver: translated reply sequence: <UDP.SOCK>|The Prestige|OK</UDP.SOCK>
19:53:33.900 - commandserver: UDP receive: IP:8000 data: |Volver
19:53:33.901 - commandserver: translated reply sequence: <UDP.SOCK>|Volver|OK</UDP.SOCK>
19:53:33.918 - commandserver: UDP receive: IP:8000 data: |Cars
19:53:33.920 - commandserver: translated reply sequence: <UDP.SOCK>|Cars|OK</UDP.SOCK>
19:53:33.937 - commandserver: UDP receive: IP:8000 data: |The Da Vinci Code
19:53:33.939 - commandserver: translated reply sequence: <UDP.SOCK>|The Da Vinci Code|OK</UDP.SOCK>
19:53:33.956 - commandserver: UDP receive: IP:8000 data: |Penelope
19:53:33.958 - commandserver: translated reply sequence: <UDP.SOCK>|Penelope|OK</UDP.SOCK>
19:53:33.975 - commandserver: UDP receive: IP:8000 data: |Rescue Dawn
19:53:33.976 - commandserver: translated reply sequence: <UDP.SOCK>|Rescue Dawn|OK</UDP.SOCK>
19:53:33.994 - commandserver: UDP receive: IP:8000 data: |Notebook
19:53:33.995 - commandserver: translated reply sequence: <UDP.SOCK>|Notebook|OK</UDP.SOCK>
19:53:34.012 - commandserver: UDP receive: IP:8000 data: |Trixie
19:53:34.015 - commandserver: translated reply sequence: <UDP.SOCK>|Trixie|OK</UDP.SOCK>
Jetzt kommt jeder Titel einzeln.
Im Terminal sieht das Ergebnis der Sqlite Abfrage so aus:
|16 Blocks|300|An Inconvenient Truth|Babel|Blood Diamond|Das Leben der Anderen|Deja Vu|Dreamgirls|Pirates of the Caribbean: Dead Man's Chest|Hollywoodland|The Departed|The Good Shepherd|The Prestige|Volver|Cars|The Da Vinci Code|Penelope|Rescue Dawn|Notebook|Trixie
Das Perl Script für den Server:
# UDP message server
use strict;
use DBI;
use IO::Socket;
use Encode qw(decode);
# Datenbank
my $dbargs = {AutoCommit => 0, PrintError => 1};
my $dbh = DBI->connect("dbi:SQLite:dbname=MyVideos34.db", "", "", $dbargs);
my($data, $sock, $res, $newmsg, $MAXLEN, $PORTNO);
$MAXLEN = 1024;
$PORTNO = 8000;
$sock = IO::Socket::INET->new(LocalPort => $PORTNO, Proto => 'udp')
or die "socket: $@";
print "Warte auf UDP Nachricht von Port $PORTNO\n";
while ($sock->recv($newmsg, $MAXLEN)) {
my($port, $ipaddr) = sockaddr_in($sock->peername);
print "Befehl von Client: $newmsg\n";
($data) = "";
$res = $dbh->selectall_arrayref("$newmsg;") or die "Couldn't prepare statement: " . $dbh->errstr;
foreach my $row (@$res) {
($data) = @$row;
$sock->send(decode("utf-8","|$data"));
} }
die "recv: $!";
$dbh->disconnect();
Wie muss ich die Ausgabe an den Socket ändern?
Hast Du eine Idee...
Klaus
Einen Kommentar schreiben:
-
Hallo Sascha,
hab versucht auf udp umzustellen und erhalte folgendes Ergebnis:
19:53:33.628 - network: udp message from IP, size 64 bytes
19:53:33.629 - parser: parsing sequence: <UDP.SOCK><SEND=SELECT c00 FROM movie WHERE c07=2006></UDP.SOCK>
19:53:33.630 - parser: command: UDP.SOCK - SEND=SELECT c00 FROM movie WHERE c07=2006
19:53:33.630 - parser: reply sequence: <UDP.SOCK>SEND=|OK</UDP.SOCK>
19:53:33.633 - commandserver: UDP send: IP:8000 data: SELECT c00 FROM movie WHERE c07=2006
19:53:33.638 - commandserver: UDP receive: IP:8000 data: |16 Blocks
19:53:33.640 - commandserver: translated reply sequence: <UDP.SOCK>|16 Blocks|OK</UDP.SOCK>
19:53:33.648 - network: message parsed
19:53:33.666 - commandserver: UDP receive: IP:8000 data: |300
19:53:33.670 - commandserver: translated reply sequence: <UDP.SOCK>|300|OK</UDP.SOCK>
19:53:33.688 - commandserver: UDP receive: IP:8000 data: |An Inconvenient Truth
19:53:33.690 - commandserver: translated reply sequence: <UDP.SOCK>|An Inconvenient Truth|OK</UDP.SOCK>
19:53:33.707 - commandserver: UDP receive: IP:8000 data: |Babel
19:53:33.708 - commandserver: translated reply sequence: <UDP.SOCK>|Babel|OK</UDP.SOCK>
19:53:33.726 - commandserver: UDP receive: IP:8000 data: |Blood Diamond
19:53:33.727 - commandserver: translated reply sequence: <UDP.SOCK>|Blood Diamond|OK</UDP.SOCK>
19:53:33.744 - commandserver: UDP receive: IP:8000 data: |Das Leben der Anderen
19:53:33.746 - commandserver: translated reply sequence: <UDP.SOCK>|Das Leben der Anderen|OK</UDP.SOCK>
19:53:33.763 - commandserver: UDP receive: IP:8000 data: |Deja Vu
19:53:33.765 - commandserver: translated reply sequence: <UDP.SOCK>|Deja Vu|OK</UDP.SOCK>
19:53:33.782 - commandserver: UDP receive: IP:8000 data: |Dreamgirls
19:53:33.783 - commandserver: translated reply sequence: <UDP.SOCK>|Dreamgirls|OK</UDP.SOCK>
19:53:33.800 - commandserver: UDP receive: IP:8000 data: |Pirates of the Caribbean: Dead Man's Chest
19:53:33.802 - commandserver: translated reply sequence: <UDP.SOCK>|Pirates of the Caribbean: Dead Man's Chest|OK</UDP.SOCK>
19:53:33.819 - commandserver: UDP receive: IP:8000 data: |Hollywoodland
19:53:33.821 - commandserver: translated reply sequence: <UDP.SOCK>|Hollywoodland|OK</UDP.SOCK>
19:53:33.838 - commandserver: UDP receive: IP:8000 data: |The Departed
19:53:33.839 - commandserver: translated reply sequence: <UDP.SOCK>|The Departed|OK</UDP.SOCK>
19:53:33.860 - commandserver: UDP receive: IP:8000 data: |The Good Shepherd
19:53:33.862 - commandserver: translated reply sequence: <UDP.SOCK>|The Good Shepherd|OK</UDP.SOCK>
19:53:33.880 - commandserver: UDP receive: IP:8000 data: |The Prestige
19:53:33.882 - commandserver: translated reply sequence: <UDP.SOCK>|The Prestige|OK</UDP.SOCK>
19:53:33.900 - commandserver: UDP receive: IP:8000 data: |Volver
19:53:33.901 - commandserver: translated reply sequence: <UDP.SOCK>|Volver|OK</UDP.SOCK>
19:53:33.918 - commandserver: UDP receive: IP:8000 data: |Cars
19:53:33.920 - commandserver: translated reply sequence: <UDP.SOCK>|Cars|OK</UDP.SOCK>
19:53:33.937 - commandserver: UDP receive: IP:8000 data: |The Da Vinci Code
19:53:33.939 - commandserver: translated reply sequence: <UDP.SOCK>|The Da Vinci Code|OK</UDP.SOCK>
19:53:33.956 - commandserver: UDP receive: IP:8000 data: |Penelope
19:53:33.958 - commandserver: translated reply sequence: <UDP.SOCK>|Penelope|OK</UDP.SOCK>
19:53:33.975 - commandserver: UDP receive: IP:8000 data: |Rescue Dawn
19:53:33.976 - commandserver: translated reply sequence: <UDP.SOCK>|Rescue Dawn|OK</UDP.SOCK>
19:53:33.994 - commandserver: UDP receive: IP:8000 data: |Notebook
19:53:33.995 - commandserver: translated reply sequence: <UDP.SOCK>|Notebook|OK</UDP.SOCK>
19:53:34.012 - commandserver: UDP receive: IP:8000 data: |Trixie
19:53:34.015 - commandserver: translated reply sequence: <UDP.SOCK>|Trixie|OK</UDP.SOCK>
Jetzt kommt jeder Titel einzeln.
Im Terminal sieht das Ergebnis der Sqlite Abfrage so aus:
|16 Blocks|300|An Inconvenient Truth|Babel|Blood Diamond|Das Leben der Anderen|Deja Vu|Dreamgirls|Pirates of the Caribbean: Dead Man's Chest|Hollywoodland|The Departed|The Good Shepherd|The Prestige|Volver|Cars|The Da Vinci Code|Penelope|Rescue Dawn|Notebook|Trixie
Das Perl Script für den Server:
# UDP message server
use strict;
use DBI;
use IO::Socket;
use Encode qw(decode);
# Datenbank
my $dbargs = {AutoCommit => 0, PrintError => 1};
my $dbh = DBI->connect("dbi:SQLite:dbname=MyVideos34.db", "", "", $dbargs);
my($data, $sock, $res, $newmsg, $MAXLEN, $PORTNO);
$MAXLEN = 1024;
$PORTNO = 8000;
$sock = IO::Socket::INET->new(LocalPort => $PORTNO, Proto => 'udp')
or die "socket: $@";
print "Warte auf UDP Nachricht von Port $PORTNO\n";
while ($sock->recv($newmsg, $MAXLEN)) {
my($port, $ipaddr) = sockaddr_in($sock->peername);
print "Befehl von Client: $newmsg\n";
($data) = "";
$res = $dbh->selectall_arrayref("$newmsg;") or die "Couldn't prepare statement: " . $dbh->errstr;
foreach my $row (@$res) {
($data) = @$row;
$sock->send(decode("utf-8","|$data"));
} }
die "recv: $!";
$dbh->disconnect();
Wie muss ich die Ausgabe an den Socket ändern?
Hast Du eine Idee...
Klaus
Einen Kommentar schreiben:
-
Hallo Klaus,
bzgl. der Übertragung machst Du garnichts falsch, die Gegenstelle sendet die Antwort "zerhackt".
Lösung 1: Wenn möglich, auf UDP umstellen.
Lösung 2: Wenn möglich, das TCP-Sendeverhalten der Gegenstelle umstellen, sodaß der komplette String auf einmal gesendet wird.
Einen Kommentar schreiben:
-
Mapping funktioniert nicht
Hallo,
kriege über den Commandserver "Server" folgenden Inhalt nach mmh:
11:10:42.869 - network: udp message from xxx.xxx.xxx.xxx, size 23 bytes
11:10:42.869 - parser: parsing sequence: <SERVER><JAHR></SERVER>
11:10:42.871 - parser: command: SERVER - JAHR
11:10:42.871 - parser: reply sequence: <SERVER>JAHR=|OK</SERVER>
11:10:42.871 - commandserver: TCP send: xxx.xxx.xxx.xxx:9000 data: 2006\0x0A
11:10:42.877 - commandserver: TCP receive: xxx.xxx.xxx.xxx:9000 data: |16 Blocks
11:10:42.878 - commandserver: translated reply sequence: <SERVER>TITEL|OK</SERVER>
11:10:42.889 - network: message parsed
11:10:42.906 - commandserver: TCP receive: xxx.xxx.xxx.xxx:9000 data: |300|An Inconvenient Truth|Babel|Blood Diamond|Das Leben der Anderen|Deja Vu|Dreamgirls|Pirates of the Caribbean: Dead Man's Chest|Hollywoodland|The Departed|The Good Shepherd|The Prestige|Volver|Cars|The Da Vinci Code|Penelope|Rescue Dawn|Notebook|Trixie
11:10:42.908 - commandserver: translated reply sequence: <SERVER>TITEL|OK</SERVER>
Manchmal kommt die Rückantwort in einer Sequenz dann so wie hier in 2 Sequenzen.
Der Commandserver:
[CONFIG];
ACTIVE;YES
SERVERIP;xxx.xxx.xxx.xxx
SERVERPORT;9000
SERVERMODE;ASCII
SERVERTIMEOUT;NONE
SERVERPROTOCOL;TCP
MATCHING=NORMAL
CMDSUFFIX;\0x0A
[COMMANDS];
SEND;\#;
JAHR;2006
[MAPPINGS];
\?\*;TITEL
Was mach ich falsch?
Gewünschtes Ergebnis:
<SERVER>TITEL=16 Blocks|300|An Inconvenient Truth|Babel|Blood Diamond|Das Leben der Anderen|Deja Vu|Dreamgirls|Pirates of the Caribbean: Dead Man's Chest|Hollywoodland|The Departed|The Good Shepherd|The Prestige|Volver|Cars|The Da Vinci Code|Penelope|Rescue Dawn|Notebook|Trixie|OK</SERVER>
Klaus
Einen Kommentar schreiben:
-
Hallo allerseits,
habe ein Problem mit der Ansteuerung eines Sanyo PLV-Z5 Beamers.
Der Beamer besitzt eine RS232 Schnittstelle, wenn ich die Kommandos
über Hyper-Terminal sende führt er diese brav aus.
Nun versuche ich über mmh CommadServer diese Kommandos
auszuführen, laut SkriptClient-Monitor macht mmh das auch brav.
aber es tut NIX !
Der Beamer ist über ein Moxa NPort5110 Lan/Serial Adapter mit dem
Netzwerk verbunden.
Ich habe schon mit den Einstellungen des Nport experimentiert „aber Nix da“.
In der Bedienungsanleitung des NPort steht, das die TX/RX LED das
transmitting mit grün signalisiert diese bleibt aber „AUS“
(Ready und Link LED sind grün) das lässt vermuten
das die Konfiguration des NPort nicht korrekt ist.
Kennt sich jemand mit Nport 5110 und dessen Konfiguration in Verbindung mit
mmh aus?
Meine Konfiguration Nport:
Network Settings : Außer IP alles Standard
Serial Settings : Baud rate 19200 (laut Sanjo)
Data bits 8
Stop bits 1
Parity None
Flow control None
FIFO Enable
Operating Settings:Real COM Mode (alles andere Standard)
Einen Kommentar schreiben:
-
Ein Gast antworteteIch meine damit, dass die nächste Version entsprechend geändert wird.
Auszug aus dem changelog:
Version 1.0.65:
- TCP- und UDP-Kommandoparser multithreaded
- Commandserver parallelisiert (=performanter), bitte wenn möglich mal mit mehreren Geräten gleichzeitig ausprobieren
- Broadcast-Engine optimiert
- iViewer-Absturz bei iTunes-Betrieb behoben
LG
Einen Kommentar schreiben:
-
Hi Mike,
kannst du kurz erklären was du mit
meinst?...Bauen das also entsprechend um.
AppleScript unterstützt leider kein UDP da es nur zum Scripten da ist und nicht auf low level Functions zugreifen kann, leider! Wird ein TCP Support kommen?
Bezüglich Join Änderungen:
Meiner Meinung nach ist das Join ändern über mmh eine Super Funktion, da du so z.B. bei einem Screen Change bewust die Felder neu befüllen kannst und dir nicht die Finger Wund greppen must mit den Values und den Positionen, auch kann ich so externe Services nutzen. z.b. per WebService oder KO Abfragen Felder befüllen.
Gerade wenn demnächst beim iViewer auch Listen hinzukommen wird das ein must have sein.
VG macrauder
Einen Kommentar schreiben:
-
Ein Gast antwortete... wir diskutieren nicht, wir handeln !!! Bauen das also entsprechend um.
Warum Du nun aus AS iViewer Joins verändern möchtest, ist mir noch nicht ganz klar. Theoretisch geht das auch, da eben der iViewer Server "gethreaded"
ausgelegt ist. Was auch die Frage beantwortet, ob Du Dich mit mehr als einem Phone/Touch verbinden kannst....
Das Problem: Wenn Du das mit AS so machen willst, kannst Du das zZ nur über UDP. Da der iViewer Client sich nur mit einem Server verbinden läßt, hast Du auch keine Chance irgendwie anders dazwischen zu kommen....
Verständnis Frage: :-) ja, da habe ich mich wohl ein wenig verhaspelt ....
LG
Einen Kommentar schreiben:
-
... ist es meist nur für den der es programmiert hat!!!!ja, aber das ist doch auch logisch !!!
"normal" wird ein server der auf einen port lauscht gethreaded ausgelegt... da brauchen wir aber nicht aus diksutieren!
Was hab ich vor!
Ich möchte aus einem command aufruf heraus ein AS aufrufen welches dann wieder weitere commands called um die iviewer joins zu verändern.
Verhält der iViewer "Server" sich eigentlich auch wie der CommandServer? Sprich kann da nur ein iPhone mit ihm parallel reden?
Mich würde euer Verständniss was Client oder Server ist mal Interessieren, ich denke mit den Begriffen wird etwas inflationär umgegangen!
Für mich ist mmh ein Server den ich sage was er machen soll... der client ist für mich das programm was ihm sagt was er machen soll, also iphone, gui, scripts usw. sind wir da dakor?
Einen Kommentar schreiben:
-
Ein Gast antworteteja, aber das ist doch auch logisch !!!
Bzw. bedienen wir auf dieser Ebene per TCP nur eine Verbindung. Kommen so auch eigentlich super zurecht. Der Mac ist hinsichtlich der Protokoll Schnittstelle eben "nur" Client...
Mich würde interessieren, was Du denn da genau vor hast ??? Evtl. können wir Dir neben UDP ja einen anderen Weg aufzeigen.
LG
Einen Kommentar schreiben:
-
Hab mich per TCP verbunden, am einfachsten du machst mal einen
telnet IP PORT
und läst den stehen.
Dann nimmst du den Scripting Client und versuchst dich mit dem zu verbinden. Das geht nicht da der Port noch von dem Telnet geblockt ist.
Einen Kommentar schreiben:
-
Ein Gast antworteteMit Sicherheit läuft der/die CServer mutlithreaded !!!!
kann es sein Das Du Dich, mit was auch immer, per TCP verbindest ???
Ich habe es noch nicht geschafft, den CServer "abzuschießen"... wäre evtl. mal wichtig zu erfahren, was genau Du da machst ??
LG
Einen Kommentar schreiben:
-
Hi,
ich habe gerade feststellen müssen das der CommandServer anscheint Single Threaded läuft!
Mir ist es aufgefallen als ich ein Korruptes Command an den Server geschickt habe und Ihn damit abgeschossen habe. Danach hab ich den Server restartet und einen Telnet auf den Port gemacht und Commands per Hand abgesetzt und festgestellt das man Parallel nicht mir dem ScriptingClient arbeiten kann.
Das ganze schrenkt die Möglichkeiten meiner Meinung nach doch arg ein, da man so nur mit einen Client den Server steuern kann. Jetzt könnte man sagen das mehrere Clients auf die Sekunde genau zugreifen müssen aber richtig doof wird es wenn man von einem Script aus was im Server läuft auch wieder einen Connect macht der mmh commands absetzen soll. (sieh mein AS Script)
Generell sollten Server Prozesse möglichst immer Multithreaded ausgelegt werden so das ein Prozess nicht den ganzen Server platt machen kann.
Sprich jeder Request wird in einen Thread verpackt und dann verarbeitet.
Das macht den Server einfach robuster gegenüber Fehlern und auch flexiebler einsetzbar.
Gibt es technische Gründe dafür oder ist es eher aus der Historie heraus entstandenen?
VG macruader
Einen Kommentar schreiben:


Einen Kommentar schreiben: