php8.5
Home/ Manual/ sockets / functions/ socket_bind

socket_bind

PHP function Edit on GitHub ✎

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Binds a name to a socket

Description

socket_bind(Socket $socket, string $address, int $port = 0): bool

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

Parameters

socket

A Socket instance created with socket_create().

address

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

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

Success

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.

Changelog

VersionDescription
8.5.0Now throws a ValueError when port is lower than 0 or greater than 65535.

Examples

Using socket_bind() to set the source address

php
<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

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

// Bind the source address
socket_bind($sock, $sourceips['madcoder']);

// Connect to destination address
socket_connect($sock, '127.0.0.1', 80);

// Write
$request = 'GET / HTTP/1.1' . "\r\n" .
           'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Close
socket_close($sock);

?>

Notes

Note

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

See Also

Source: reference/sockets/functions/socket-bind.xml · from the official PHP manual (php/doc-en)