Pergunta

Eu só olhei para da wikipedia entrada em dados out-of-band e, tanto quanto eu entendo, os dados OOB é de alguma forma sinalizada mais importante e tratados como dados comuns, mas transmitida em um fluxo separado, que profundamente me confunde.

A questão real seria (além de "Alguém poderia explicar quais dados OOB é?"):

Eu estou escrevendo um aplicativo UNIX que usa soquetes e necessidade de fazer uso de seleccione () e queria saber o que fazer com o parâmetro exceptfds? Preciso colocar todas as minhas bases para este parâmetro e reagir a tais eventos? Ou eu simplesmente ignorá-los?

Foi útil?

Solução

Eu sei que você decidiu que você não precisa de dados alça OOB, mas aqui estão algumas coisas para manter em mente se você nunca do cuidado com OOB ...

  • IPv4 não realmente enviar dados OOB em um canal separado, ou com uma prioridade diferente. É apenas uma bandeira no pacote.
  • dados OOB é extremamente limitada - 1 byte
  • dados OOB pode ser recebida, quer em linha ou separadamente, dependendo das opções de soquete
  • Uma "exceção" sinalização dados OOB pode ocorrer mesmo que a próxima leitura não contém os dados OOB (a pilha de rede no remetente pode sinalizar qualquer já na fila de dados, de modo que o outro lado vai saber que há OOB ASAP). Isso é muitas vezes tratada inserindo um loop "fuga", onde você descartar dados até que os dados OOB real está disponível.

Se isso parece um pouco confuso e sem valor, isso é porque a maioria é. Há são boas razões para utilizar OOB, mas é raro. Um exemplo é FTP, onde o usuário pode estar no meio de uma grande transferência, mas decidir abortar. O aborto é enviado como dados OOB. Nesse ponto, o servidor eo cliente apenas comer quaisquer novos dados "normal" para qualquer coisa de drenagem que ainda está em trânsito. Se o aborto foram manipulados em linha com os dados, em seguida, todo o tráfego excelente teria que ser processado, apenas para ser despejado.

É bom estar ciente de que OOB existe e as noções básicas de como ele funciona, apenas no caso de você precisar fazer isso. Mas não se incomode aprendendo de dentro para fora, a menos que você está apenas curioso. As chances são decente você pode não usá-lo.

Outras dicas

Acho que encontrei a resposta sobre desta página . Em suma:

Eu não preciso de dados OOB alça do lado do destinatário, se não estou enviar quaisquer dados OOB. Eu tinha pensado que os dados OOB poderia ser gerado pelo sistema operacional do remetente.

Você não precisa lidar com isso no final de recepção, mesmo se você são enviá-lo -. De dados OOB é transparente ignorado em todas as circunstâncias, a menos que você vá ativamente sobre recebê-lo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top