Edit report at http://bugs.php.net/bug.php?id=34028&edit=1

 ID:                 34028
 Comment by:         keithm at aoeex dot com
 Reported by:        alex at cedevices dot com
 Summary:            socket_create_listen doesn't listen on all
                     interfaces
 Status:             No Feedback
 Type:               Bug
 Package:            Sockets related
 Operating System:   Windows 2000
 PHP Version:        5.0.4
 Block user comment: N
 Private report:     N

 New Comment:

Same issue.  Small test script:



===================================================

<?php



$server = socket_create_listen(5900);

if (!$server){

        throw new Exception('Cannot create socket');

}



$client = socket_accept($server);

if (!$client){

        throw new Exception('Client connect failed.');

}



while ($client){

        $data = socket_read($client, 1024);

        if ($data != ""){

                $data = trim($data);



                socket_write($client, 'You said: '.$data."\r\n");

                if ($data=='bye'){

                        socket_close($client);

                        socket_close($server);

                        $client=null;

                }

        }

        else {

                socket_close($client);

                socket_close($server);

                $client=null;

        }

}

===================================================



Environment

===================================================

Windows 7 64-bit



D:\php-trunk>php -v

PHP 5.3.99-dev (cli) (built: May 15 2011 09:31:01)

Copyright (c) 1997-2011 The PHP Group

Zend Engine v2.4.0, Copyright (c) 1998-2011 Zend Technologies



(also fails in 5.3.6 release)





After running the script above:

===================================================

C:\Users\Keith>netstat -nap tcp



Active Connections



  Proto  Local Address          Foreign Address        State

  [..snip..]

  TCP    127.0.0.1:5900         0.0.0.0:0              LISTENING



C:\Users\Keith>nc -v 127.0.0.1 5900

sleek [127.0.0.1] 5900 (?) open

Testing

You said: Testing

123

You said: 123

bye

You said: bye



C:\Users\Keith>nc -v 192.168.0.6 5900

sleek [192.168.0.6] 5900 (?): connection refused


Previous Comments:
------------------------------------------------------------------------
[2007-03-13 06:36:34] mayank_10000 at yahoo dot com

i am using php 5.0.4 Ver. and i want to broad cast msg in local network
using php so i am using this function 

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);



but if i am run this php file then generat error on page this



Fatal error: Call to undefined function socket_create() in C:\Program
Files\Apache Group\Apache2\htdocs\mayank\socket\examp1.php on line 3



what i do for it pls reply me

------------------------------------------------------------------------
[2006-08-03 13:27:50] jarcarlos at sapo dot pt

I have the same problem with PHP 5.1.4 version. The soket can't receive
connections from internet, but can do it in local network. But when i
put 0.0.0.0 in address socket_bind I begin to receive connections.



In some (many) connections i receive warning in socket_write and
socket_read because "unable to write/read from socket [0]". 



My operating system is: Windows XP.

------------------------------------------------------------------------
[2005-08-15 01:00:04] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------
[2005-08-07 21:21:29] [email protected]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc.

If possible, make the script source available online and provide
an URL to it here. Try to avoid embedding huge scripts into the report.



------------------------------------------------------------------------
[2005-08-07 20:43:15] alex at cedevices dot com

Description:
------------
Standard latest xampp setup (including PHP 5.0.4).

When using socket_create_listen(port), it does not listen on all
interfaces as the docs indicate that it would. I was unable to connect
to the machine using anything other than localhost (127.0.0.1). 



The workaround is to use socket_create, socket_bind (with 0.0.0.0 as the
address) and socket_listen to accomplish the same task.



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=34028&edit=1

Reply via email to