The Server Pages
:: TSP Menu
- Home
- Authors
- Glossary
- RSS Feed

:: Servers
- CPanel
- Hosting
- Linux
- Windows

:: Webmaster
- Databases
- Design
- Search Engines

:: Scripts
- Scripts

:: Documentation
- PHP Manual

:: Other
- Errors & Solutions
- TechPunt
- Wojjie

search for in the

socket_clear_error> <socket_accept
[edit] Last updated: Sat, 12 May 2012

view this page in


(PHP 4 >= 4.1.0, PHP 5)

socket_bindBinds a name to a socket


bool socket_bind ( resource $socket , string $address [, int $port = 0 ] )

Binds the name given in address to the socket described by socket. This has to be done before a connection is be established using socket_connect() or socket_listen().



A valid socket resource created with socket_create().


If the socket is of the AF_INET family, the address is an IP in dotted-quad notation (e.g.

If the socket is of the AF_UNIX family, the address is the path of a Unix-domain socket (e.g. /tmp/my.sock).

port (Optional)

The port parameter is only used when binding an AF_INET socket, and designates the port on which to listen for connections.

Return Values

Returns TRUE on success or FALSE on failure.

The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.


Example #1 Using socket_bind() to set the source address

// Create a new socket
$sock socket_create(AF_INETSOCK_STREAMSOL_TCP);

// An example list of IP addresses owned by the computer
$sourceips['kevin']    = '';
$sourceips['madcoder'] = '';

// Bind the source address

// Connect to destination address

// Write
$request 'GET / HTTP/1.1' "\r\n" .
'Host:' "\r\n\r\n";

// Close




This function must be used on the socket before socket_connect().


Windows 9x/ME compatibility note: socket_last_error() may return an invalid error code if trying to bind the socket to a wrong address that does not belong to your machine.

See Also

socket_clear_error> <socket_accept
[edit] Last updated: Sat, 12 May 2012
add a note add a note User Contributed Notes socket_bind
Takigama 30-Mar-2012 06:34
Its worth noting that if your trying to bind a port for ipv6, you need to use "::0" if you wish to bind all interfaces, for example:

$sock = socket_create(AF_INET6, SOCK_DGRAM, SOL_UDP);
$err = socket_bind($sock, "::0", 34000);

Would bind ipv6 udp port 34000 on all interfaces.
dresende at thinkdigital dot pt 21-Nov-2011 09:39
Regarding previous post:

"0" has address is no different from "" -> accept only from local host
w.x.y.z (valid local IP) -> accep only from this network -> accept from anywhere
Mex 13-Sep-2011 05:25
It appears for the $address parameter:

accepts clients from localhost (eg.

accepts clients from localhost, and the server's network (eg.,,

'0' or 0
accepts clients from localhost, the server's network, and external networks (eg.,,,
php50613160534 dot 3 dot korkman at spamgourmet dot org 13-Jun-2005 06:16
Use 0 for port to bind a random (free) port for incoming connections:

socket_bind ($socket, $bind_address, 0);
socket_getsockname($socket, $socket_address, $socket_port);

$socket_port contains the assigned port, you might want to send it to a remote client connecting. Tested with php 5.03.
gasket at cekkent dot net 03-May-2003 06:19
The aforementioned tidbit about using NULL to bind to all addresses did not work for me, as I would receive an error about unknown address. Using a 0 worked for me:

socket_bind ($socket, 0, $port)

This also allows you to receive UDP broadcasts, which is what I had been trying to figure out.
keksov[at] 10-Jun-2002 11:22
If you want to reuse address and port, and get rid of error: unable to bind, address already in use, you have to use socket_setopt (check actual spelling for this function in you PHP verison) before calling bind:

if (!socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1)) {

This solution was found by
Christophe Dirac. Thank you Christophe!

show source | credits | sitemap | contact | advertising | mirror sites