socket_bind

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

  • socket_bind

    Hi all,

    vielleicht weiss ja jemand weiter...

    Ich öffne einen UDP-Socket über eine Klasse und mittels socket_bind binde ich nun den port an das system. das kann ich auch wunderbar mit netstat sehen, der port ist offen. nun warte ich auf eingaben und fange in einer while schleife den recv ab, klappt auch soweit super, allerdings muss ich bei der entwicklung ab und zu mal das script abbrechen. mit ignore_user_abbort() und register_shutdown_function() hab ich es schon versucht, leider bleibt der port gebindet. ist nur doof da ich jedesmal den port ändern muss und meine liste unter netstat sieht etwas überlaufen aus.

    Also hat vll. noch jmd eine idee ?

    Danke

    GriZZ

  • #2
    Hi,

    jemand heute vielleicht mit einer Idee wie ich den socket_bind() lösen kann, wenn das script abgebrochen wird ?

    wenn ich mit register_shutdown_function( 'abort' ) die function abort aufrufe klappt es leider nicht

    PHP-Code:
    register_shutdown_function'abort' )
        
        class 
    UdpSocket {
            
            var 
    $socket     NULL;
            var 
    $socketOpen FALSE;
            
            
    //...
            
    function isopenSocket(){
                return 
    $this->socketOpen;
            }
            
            function 
    closeSocket(){
                @
    socket_close$this->socket) ;
                
    $this->socketOpen FALSE
                $this
    ->socket NULL;
            }
            
    //...
        
    }
        
        
    // Listen UdpSocket
        
    $Socket = new UdpSocket;    
        
    $Socket->bindSocket'127.0.0.1'4447 );
        
        
    // Read UdpSocket
        
    while( TRUE ){
            
    // Read Until Exit        
        
    }
        
        
    $Socket->closeSocket();
        
        function 
    abort(){
            if ( 
    $Socket->isopenSocket() === TRUE && is_object$Socket ) ){
                
    $Socket->closeSocket();    
                unset( 
    $Socket );
            }
        } 
    Code ist in vereinfachter Form !

    Wenn das Script normal durchläuft wird der Socket geschlossen, wenn ich das Script abbreche, dann wird des Socket nicht geschlossen.

    Gruß GriZZ

    Kommentar

    Lädt...
    X