Ankündigung

Einklappen
Keine Ankündigung bisher.

[mmh] CommandServer

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sunnyhd
    antwortet
    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

    Einen Kommentar schreiben:


  • no sleep
    antwortet
    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:


  • sunnyhd
    antwortet
    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:


  • sunnyhd
    antwortet
    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:


  • no sleep
    antwortet
    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:


  • sunnyhd
    antwortet
    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:


  • Olli.O
    antwortet
    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:


  • meudenbach
    Ein Gast antwortete
    Ich 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:


  • macrauder
    antwortet
    Hi Mike,

    kannst du kurz erklären was du mit

    ...Bauen das also entsprechend um.
    meinst?

    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:


  • meudenbach
    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:


  • macrauder
    antwortet
    ja, aber das ist doch auch logisch !!!
    ... ist es meist nur für den der es programmiert hat!!!!
    "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:


  • meudenbach
    Ein Gast antwortete
    ja, 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:


  • macrauder
    antwortet
    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:


  • meudenbach
    Ein Gast antwortete
    Mit 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:


  • macrauder
    antwortet
    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:

Lädt...
X