Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ongelma socket_closen:n kanssa

tesmu [20.11.2007 17:02:02]

#

Eli mulla olis tällänen koodi

<?php
        $address = "0.0.0.0";
        $port = 1337;
        $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        socket_bind($socket, $address, $port);
        socket_listen($socket);

        while (1) {
                if ($conn = @socket_accept($socket)) {
                        socket_send($conn, "MOI\n",4,0);
                        socket_close($conn);
                        socket_close($socket);
                        exit(0);
                }

        }
        socket_close($conn);
        socket_close($socket);
?>

Kun ajan tämän koodin näin
teemu@serveri4:~$ php ./socktest.php

Okei ei tule virheilmoituksia

Sitten yhdistän netcatillä tähän

teemu@serveri4:~$ nc 127.0.0.1 1337
MOI
teemu@serveri4:~$

Okei kaikki toimii tähän asti hyvin, mutta kun käynnistän tuon php socket -softan uudestaan niin tapahtuu näin

teemu@serveri4:~$ php ./socktest.php

Warning: socket_bind(): unable to bind address [98]: Address already in use in /home/teemu/socktest.php on line 5

teemu@serveri4:~$


Kysymys kuuluu: Miksi socket_close ei toimi?

teppuli [22.11.2007 13:19:24]

#

Koita muuttaa tuo

socket_send($conn, "MOI\n",4,0);
socket_close($conn);
socket_close($socket);
exit(0);

seuraavaksi

socket_send($conn, "MOI\n",4,0);
socket_shutdown($socket,2)
socket_close($socket);
socket_close($conn);
exit(0);

tesmu [22.11.2007 13:37:44]

#

Eli siis olen koittanut myös tuota shutdown:ta jo ja silti sama virheilmoitus tulee...

tesmu [27.11.2007 08:18:46]

#

Eikös kellään ole mitään ehdotuksia?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta