Função de setsockopt em c

Função de setsockopt em c
“Uma função setSockOpt () é um conceito muito importante relacionado às redes na linguagem C. É uma função muito útil relacionada ao soquete. Para saber sobre essa função, primeiro precisamos conhecer o conceito de soquete.

Um soquete é um software embutido que controla a rede total e é tratado como um endpoint para enviar e receber pacotes (dados) em toda a rede. Ele se comporta como um comunicador entre dois nós nas mesmas ou diferentes redes.

SetsockOpt () é uma função na programação do soquete (programa de aplicativo) para controlar essa comunicação e alocar algum espaço de buffer, controle de tempo e no campo da transmissão.”

Características da função SetsockOpt ()

1. Arquivo de cabeçalho: a função SetSockOpt () é uma função predefinida que definição é escrita em um arquivo de cabeçalho na biblioteca C chamada arquivo de cabeçalho.

2. Sintaxe: int setSockOpt (soquete int, int nível, int option_name, const void *option_value, soketlen_t option_len);

3. Retorno: se a função setSockOpt () executar corretamente, ele retornará zero. Mas a execução malsucedida da função setSockOpt () retorna 0. Para isso, ele retorna um valor inteiro.

Aplicação da função setSockOpt ()

A função SetsockOpt () é API. Usando esta API, podemos definir nosso servidor ou fornecer a opção ao nosso servidor para ouvir a mesma parte.

Exemplo 1

Informe -nos sobre a implementação da função setSockOpt () neste exemplo de programação.

#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
int main ()

int x1, x2, x3, x4;
if ((x1 = soquete (af_inet, sock_stream, 0)) < 0 )

perror ("verificando o dispositivo:");
saída (0);

x4 = sizeof (x2);
if (getsockopt (x1, ipproto_tcp, tcp_maxseg, (char*) & x2, & x4) < 0 )

perror ("Ocorreu o erro devido à falha da função:");
saída (0);

printf ("\ n o valor provável de x2 é: = %d", x2);
x3 = 12324;
if (SetsockOpt (x1, sol_socket, so_sndbuf, (char*) & x3, sizeof (x3)) < 0 )

perror ("as chances de falha em responder");
saída (0);

x4 = sizeof (x3);
if (getsockopt (x1, sol_socket, so_sndbuf, (char*) & x3, & x4) < 0 )

perror ("A função não responde corretamente:");
saída (0);

printf ("\ nO valor do buffer é = %d \ n", x3);
retornar 0;

Saída

Explicação

Para executar este programa, precisamos incluir algum arquivo de cabeçalho em nosso código -fonte como, e . No começo, criaremos um soquete para chamar uma função padrão soquete () e passe alguns parâmetros padrão dentro de seus parênteses. Agora chamaremos a função getSockOpt () para obter o valor atualizado para um soquete e armazená -lo dentro de uma variável nomeada x2. Agora vamos definir o valor para o soquete chamando a função setSockOpt (). Depois disso, verificaremos novamente o valor do soquete no buffer usando a função getSockOpt () e imprimirá seu valor.

Exemplo 2

Aqui veremos outro exemplo da função setSockpt ().

#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
int main (vazio);
int main ()

int x1;
int x2;
socklen_t x3 = sizeof (x2);
/ * Crie a definição funcional */
if ((x1 = soquete (pf_inet, sock_stream, ipproto_tcp)) < 0 )

perror ("criando o dispositivo:");
saída (exit_failure);

/ * Verificando a condição do dispositivo funcional */
if (getsockopt (x1, sol_socket, so_keepalive, & x2, & x3) < 0 )

perror ("A função não pode responder corretamente:");
fechar (x1);
saída (exit_failure);

printf ("O estado da função de resposta é: %s \ n", (x2 ? " LIGADO DESLIGADO " ) ) ;
/ * Ative a opção funcional */
x2 = 1;
x3 = sizeof (x2);
if (setsockopt (x1, sol_socket, So_keepalive, & x2, x3) < 0 )

perror ("detectando alguma falha");
fechar (x1);
saída (exit_failure);

printf ("Este valor funcional está instalado: \ n");
/ * Verifique o status novamente */
if (getsockopt (x1, sol_socket, so_keepalive, & x2, & x3) < 0 )

perror ("verificando outra hora:");
fechar (x1);
saída (exit_failure);

printf ("Verificando a resposta contínua: %s \ n", (x2 ? " LIGADO DESLIGADO " ) ) ;
fechar (x1);
saída (exit_success);
retornar 0;

Saída

Explicação

Neste exemplo de programação, primeiro criaremos um soquete com a ajuda da função Socket () e passaremos alguns argumentos dentro de seus parênteses para fazer o soquete. Depois disso, chamaremos a função getSockOpt () para verificar os estados do soquete. Agora chamaremos a função setSockOpt () para definir o estado no modo ativo. Agora vamos verificar novamente o estado do soquete para executar a função getSockOpt () e imprimir o estado atual do soquete usando "Ligado ou desligado" modo. Na verdade, com a ajuda deste programa, queremos entender se o estado mantido do soquete está ativo ou não.

Conclusão

A partir das características, implementação e exemplo de programação da função setSockOpt (), fica claro para nós muito bem que essa função é realmente útil no caso do soquete nos diferentes níveis de rede. Com a ajuda da função setSockOpt (), podemos fazer coisas diferentes, como manipular a duração do buffer de envio e recebimento, seus tempos limite, etc. Ele nos fornece a facilidade de multicasting também.