Linux x86_64Rede & sockets#50
listen
Marca um socket como passivo, pronto para aceitar conexões de entrada.
Descrição
Transforma um socket (após `bind`) em um socket de servidor, definindo o tamanho da fila de conexões pendentes ainda não aceitas via `accept`.
Header:
sys/socket.hman 2Assinatura
int listen(int sockfd, int backlog);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| sockfd | int | Descritor do socket. |
| backlog | int | Tamanho máximo da fila de conexões pendentes. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | sockfdint |
| rsi | argumento 2 | backlogint |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EADDRINUSE(98)
- Endereço já em uso.
- EBADF(9)
- Descritor de arquivo inválido.
- ENOTSOCK(88)
- Operação de socket em descritor que não é um socket.
- EOPNOTSUPP(95)
- Operação não suportada nesse socket/arquivo (também ENOTSUP).