php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #27065 stream_socket_server won't listen on udp sockets
Submitted: 2004-01-27 15:53 UTC Modified: 2004-01-28 15:47 UTC
Votes:3
Avg. Score:4.0 ± 0.8
Reproduced:3 of 3 (100.0%)
Same Version:1 (33.3%)
Same OS:1 (33.3%)
From: glox at glox dot be Assigned:
Status: Closed Package: Documentation problem
PHP Version: 5CVS-2004-01-27 (dev) OS: freeBSD 5.1
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: glox at glox dot be
New email:
PHP Version: OS:

 

 [2004-01-27 15:53 UTC] glox at glox dot be
Description:
------------
When trying to listen on a udp socket in freebsd with php5, php fails to create the socket and returns unknown error.

The manual page gives an example about a udp server, however this returns the same error.

Operating system (uname -a):

FreeBSD 5.1-RELEASE #0: Thu Jun  5 02:55:42 GMT 2003     root@wv1u.btc.adaptec.com:/usr/obj/usr/src/sys/GENERIC

PHP version (php -v):

PHP 5.0.0RC1-dev (cli) (built: Jan 16 2004 22:47:26)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.0-dev, Copyright (c) 1998-2004 Zend Technologies

PHP configure line:
./configure --with-mysql=/usr/local/mysql --with-mime-magic --with-apxs=/usr/local/sbin/apxs --enable-wddx --with-zlib --enable-bcmath --with-bz2 --with-ncurses --enable-cli --disable-cgi --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-calender --enable-pcntl --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-exif --enable-sockets --with-xpm-dir --with-gettext --with-gmp --enable-mbstring --with-xmlrpc --with-xsl --with-ex --enable-openssl

Reproduce code:
---------------
<?php
$sock = stream_socket_server('udp://0.0.0.0:27961');
?>

Expected result:
----------------
No output

Actual result:
--------------
Warning: stream_socket_server(): unable to connect to udp://0.0.0.0:27961 (Unknown error) in /share/wolfd/serv.php on line 2


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-01-27 15:57 UTC] glox at glox dot be
The port is open, and I run this script as root

root@glox /share/wolfd# sockstat | grep 27961
root@glox /share/wolfd#

root@glox /share/wolfd# whoami
root
root@glox /share/wolfd#
 [2004-01-27 16:02 UTC] otoria at freecode dot nl
Same problem: 
 
michiel@-bash-serenity ~$ uname -a 
Linux serenity 2.4.20 #2 Mon Mar 17 22:02:15 PST 2003 i686 
unknown 
michiel@-bash-serenity ~$ php -v 
PHP 5.0.0RC1-dev (cli) (built: Jan 26 2004 16:41:55) 
Copyright (c) 1997-2004 The PHP Group 
Zend Engine v2.0.0-dev, Copyright (c) 1998-2004 Zend 
Technologies 
michiel@-bash-serenity ~$
 [2004-01-27 21:29 UTC] iliaa@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip

Seems to work for me. 
 [2004-01-27 23:27 UTC] pollita@php.net
udp:// sockets should not attempt to listen().  Because stream_socket_server() uses both the bind and listen flags by default you need to explicitly set them to bind only.

I've fixed the example to reflect this.
 [2004-01-28 13:06 UTC] glox at glox dot be
Isn't it better to let php define those flags then, based on the socket type (udp/tcp).

I don't see any change in the example either ...
 [2004-01-28 15:47 UTC] pollita@php.net
It'd be nice, but because of the way the transports layer operates it won't happen without making exceptions on a per protocol basis and that's gernerally not a good idea.

As to the documentation, the source has been updated, but the online manual is only rebuilt from source on a periodic basis.

The change amounts to:

$server = stream_socket_server('udp://0.0.0.0:13/', $errno, $errstr, STREAM_SERVER_BIND);
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Oct 17 15:01:28 2024 UTC