Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19
  1. #11
    Gesperrt
    Registriert seit
    23.03.2009
    Beiträge
    438

    Standard

    Also mit PHP und Socket ist sowas mit Sicherheit lösbar.
    Ich würde mal spontan sagen, da fehlt irgendwo ein "SOCK_STREAM".

  2. #12
    Stanley Jobson Avatar von K1ngC0bra
    Registriert seit
    26.08.2007
    Beiträge
    650

    Standard

    Also ich würde wenn ich etwas mit mehreren Clients benötige mit Flex lösen - geht ruckzuck . Kanns dich ja mal erkundingen falls du interesse hast oder mich fragen, helfe gerne.

  3. #13

    Standard

    Würde das schon gerne in PHP machen
    Ich weiß das PHP nicht so wirklich dafür ausgelegt ist aber ich kann nur PHP

    Und ein Framework oder ähnliches (meinst du Adobe Flex?) nutze ich auch sehr ungerne ^^


    Mfg

    Chaos
    Eine Regierung muß sparsam sein, weil das Geld, das sie erhält, aus dem Blut und Schweiß ihres Volkes stammt.
    Es ist gerecht, daß jeder einzelne dazu beiträgt, die Ausgaben des Staates tragen zu helfen. Aber es ist nicht gerecht, daß er die Hälfte seines jährlichen Einkommens mit dem Staate teilen muß.

    Friedrich II. der Große

  4. #14
    Stanley Jobson Avatar von GregorSamsa
    Registriert seit
    23.08.2008
    Beiträge
    729

    Standard

    @hpoc: Würd ich nicht sagen ;-)

    socket_create_listen() erstellt nen Listen-Socket - brauchst dazu kein socket_create()

    Was man braucht ist socket_select()
    Du musst (im Prinzip) z.B. 10 Sockets erstellen, und die über ein Array in einer Endlos-Schleife immer wieder mit socket_select() überprüfen - anders würd ich sagen, wird das nichts...

  5. #15
    Gesperrt
    Registriert seit
    23.03.2009
    Beiträge
    438

    Standard

    Ich glaube da gibt es mit sicherheit eine einfachere lösung.
    Ich werde mich Morgen mal an das Problem setzen und hoffentlich schon bald die Lösung presentieren können.
    Geändert von hpoc (11.04.2009 um 21:21 Uhr)

  6. #16
    Stanley Jobson Avatar von GregorSamsa
    Registriert seit
    23.08.2008
    Beiträge
    729

    Standard

    Das ist die einfachste Lösung =)

    In C funktioniert das genau so - socket_select() macht nichts anderes, als zu überprüfen, ob es Vorgänge an einer Reihe von Sockets gab.

    Das Problem bei der Geschichte ist das, dass mehrere Sockets Parallel bearbeitet werden müssen - auf dem gleichen Port.

    Du wirst da keine einfachere Lösung finden...

  7. #17
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Ich habe da mal schnell was geschrieben:
    PHP-Code:
    <?php

    if (!pcntl_fork()) die("starting the server...\n");

    $sock socket_create(AF_INETSOCK_STREAMSOL_TCP);
    socket_bind($sock'127.0.0.1'1234);
    socket_listen($sock5);

    $clients 0;

    for(;;)
    {
        if ((
    $csock socket_accept($sock)))
        {
            
    $pid pcntl_fork();
            
    $clients++;
            if (
    $pid == -1)
            {
                die(
    "couldn't fork()\n");
            }
            elseif (
    $pid 0// wir sind nicht der Vater ;)
            
    {
                
    $msg "Hello, you are client #${clients}\n";
                
    socket_send($csock$msgstrlen($msg), 0);
                while(
    socket_recv($csock$buffer10240))
                {
                    if (
    $buffer != NULL)
                    {
                        
    $msg '>> '.$buffer;
                        
    socket_send($csock$msgstrlen($msg), 0);
                    }
                }
                exit(
    0);
            }
        }
    }

    ?>
    Diese Lösung ist zwar nicht sehr schön, da für jeden Client ein neuer PHP-Prozess gestartet wird, aber es funktioniert!

    Benötigt werden die socket- und die pcntl-Erweiterungen.

    Ansonsten kann ich auf den zweiten Kommentar auf folgender PHP-Manual-Seite verweisen, welcher eine Lösung mit nicht blockierenden Sockets vorstellt:
    http://de2.php.net/manual/en/function.socket-accept.php


    mfG. BlackBerry

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  8. #18
    Stanley Jobson Avatar von GregorSamsa
    Registriert seit
    23.08.2008
    Beiträge
    729

    Standard

    Was du machen kannst ist, statt socket_create, socket_bind und socket_listen einfach nur socket_create_listen() nehmen...

    Ich habs nicht ausprobiert, aber ne Verbindung zwischen den Sockets geht da nicht, oder? Quasi wie bei einem Chatserver

  9. #19

    Standard

    Zitat Zitat von GregorSamsa
    aber ne Verbindung zwischen den Sockets geht da nicht, oder?
    Wenn du von jedem Client die Daten bekommst und auch an alle welche senden kannst geht es
    Nur gerade das ist ja mein Problem... Mehrere Clients ^^


    Mfg

    Chaos

    //EDIT: Ich hab da mal den Link wiedergefunden nur funzen tut das bei mir nicht Ó.ò
    http://www.jex-treme.de/forum/thread.php?threadid=19375
    Geändert von 2called-chaos (15.04.2009 um 20:12 Uhr)
    Eine Regierung muß sparsam sein, weil das Geld, das sie erhält, aus dem Blut und Schweiß ihres Volkes stammt.
    Es ist gerecht, daß jeder einzelne dazu beiträgt, die Ausgaben des Staates tragen zu helfen. Aber es ist nicht gerecht, daß er die Hälfte seines jährlichen Einkommens mit dem Staate teilen muß.

    Friedrich II. der Große

Seite 2 von 2 ErsteErste 12

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •