Voltar à lista
Linux x86_64Rede & sockets#49

bind

Associa um socket a um endereço local (porta, endereço IP, ou caminho de socket Unix).

Descrição

Passo necessário antes de `listen` (servidores TCP) e opcional antes de `sendto`/`connect` para fixar a porta/endereço de origem.

Header: sys/socket.hman 2

Assinatura

int bind(int sockfd, const struct sockaddr * addr, socklen_t addrlen);

Parâmetros

ParâmetroTipoDescrição
sockfdintDescritor do socket.
addrconst struct sockaddr *Endereço local a associar.
addrlensocklen_tTamanho de `addr`.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1sockfdint
rsiargumento 2addrconst struct sockaddr *
rdxargumento 3addrlensocklen_t

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EADDRINUSE(98)
Endereço já em uso.
EADDRNOTAVAIL(99)
Endereço solicitado indisponível localmente.
EINVAL(22)
Argumento inválido.
ENOTSOCK(88)
Operação de socket em descritor que não é um socket.

Relacionadas