socket_bind

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

socket_bindVincula um nome a um soquete

Descrição

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

Vincula o nome informado em address ao soquete descrito por socket. Isto deve ser feito antes que uma conexão seja estabelecida usando socket_connect() ou socket_listen().

Parâmetros

socket

Uma instância de Socket criada com socket_create().

address

Se o soquete for da família AF_INET, o parâmetro address será um IP na notação de quatro inteiros separados por pontos (ex.: 127.0.0.1).

Se o soquete for da família AF_UNIX, o parâmetro address será o caminho para um soquete de domínio Unix (ex.: /tmp/my.sock).

port (opcional)

O parâmetro port é usado somente ao vincular um soquete AF_INET, e designa a porta na qual as conexões serão recebidas.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

O código de erro pode ser recuperado com socket_last_error(). Esse código pode ser passado para socket_strerror() para obter uma explicação textual do erro.

Registro de Alterações

Versão Descrição
8.0.0 O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Exemplos

Example #1 Usando socket_bind() para definir o endereço da origem

<?php
// Cria um novo soquete
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Uma lista de exemplo de endereços IP de propriedade do computador
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Vincula o endereço de origem
socket_bind($sock, $sourceips['madcoder']);

// Conexão ao endereço de destino
socket_connect($sock, '127.0.0.1', 80);

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

// Fecha
socket_close($sock);

?>

Notas

Note:

Esta função precisa ser usada no soquete antes de socket_connect().

Veja Também