Algumas questões em relação a função shutdown()

1. Algumas questões em relação a função shutdown()

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/01/2019 - 22:37h

Tenho aqui comigo algumas questões em relação a função shutdown() e gostaria de compartilhar com vocês e também obter algumas respostas. Aqui vão elas:

1. Faz sentido usar shutdown() em conexões não full-duplex (exemplo: half-duplex)?
2. Por que deveria usar o valor SHUT_RDWR no parâmetro int how da função shutdown() quando simplismente poderia usar somente a função close()?
3. A função shutdown() deve ser usada antes ou depois da função close()?

______________________________________________________________

Se for responder algo que não convém com a dúvida do tópico ... SE MANDAAAA!




  


2. Re: Algumas questões em relação a função shutdown()

Paulo
paulo1205

(usa Ubuntu)

Enviado em 24/01/2019 - 02:25h

vzxf escreveu:

Tenho aqui comigo algumas questões em relação a função shutdown() e gostaria de compartilhar com vocês e também obter algumas respostas. Aqui vão elas:

1. Faz sentido usar shutdown() em conexões não full-duplex (exemplo: half-duplex)?

shutdown() com a opção SHUT_WR é para indicar par o outro lado que você não tem mais nada a transmitir. Essa informação pode ser útil tanto numa comunicação seja full-duplex quanto numa que seja half-duplex.

Já a opção SHUT_RD não informa nada ao outro lado do socket, mas simplesmente faz com que o sistema operacional não reencaminhe para a sua aplicação dados que a outra ponta venha a mandar. O fluxo de pacotes recebidos e ACKs devolvidos na rede (supondo que você está usando TCP) continua normalmente, mas não afetam mais a sua aplicação (a não ser que chegue um dado out-of-band, que não é afetado pelo shutdown()).

2. Por que deveria usar o valor SHUT_RDWR no parâmetro int how da função shutdown() quando simplismente poderia usar somente a função close()?

Você não precisa usar, pode realmente usar apenas close(). Contudo, se o outro lado ainda tiver conteúdo a mandar, e você fechar o socket, ele vai receber um erro de conexão resetada. Se ambos os lados saírem com shutdown (ou pelo menos chamarem close de modo coordenado), a tendência é que a conexão se feche de modo mais “limpo”.

3. A função shutdown() deve ser usada antes ou depois da função close()?

Antes. Depois do close() o socket não existirá mais, logo nenhuma operação sobre ele será válida.

Se for responder algo que não convém com a dúvida do tópico ... SE MANDAAAA!

Melhor do que censurar outrem a priori num espaço público é ignorar o que porventura não lhe interessar.


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)


3. Re: Algumas questões em relação a função shutdown()

Fernando
phoemur

(usa Debian)

Enviado em 24/01/2019 - 21:43h

Como é grande o fluxo de usuários que fazem uma pergunta e depois removem o perfil.
Está cada vez mais frequente.

______________________
https://github.com/phoemur






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts