Bug #34028 [Com]: socket_create_listen doesn't listen on all interfaces

From: Date: Sun, 15 May 2011 17:15:51 +0000
Subject: Bug #34028 [Com]: socket_create_listen doesn't listen on all interfaces
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-160735@lists.php.net to get a copy of this message
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] tony2001@php.net 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

« previous php.bugs (#160735) next »