Introdução ao Winsock, incluindo histórico e tecnologia
Introduction Winsock Including Background Technology
Esta postagem fala principalmente sobre a API Windows Sockets, que pode ser abreviada para WSA e Winsock. Depois de ler este post, você poderá conhecer sua definição, histórico, tecnologia, bem como implementações.
Nesta página :Definição para Winsock
O que é Winsock? Na computação, Winsock é uma especificação técnica usada para definir como o software de rede Windows deve acessar serviços de rede, especialmente TCP/IP. É chamado de Winsock porque é uma adaptação da interface de soquete Berkeley UNIX para Windows. Um soquete é um acordo especial usado para conectar e trocar dados entre dois processos de programa no mesmo computador ou rede.

Winsock é a abreviatura de Windows Sockets API (WSA). Ele define a interface padrão entre aplicativos clientes TCP/IP do Windows (como clientes FTP ou navegadores da Web) e a pilha básica de protocolos TCP/IP.
Postagem relacionada: Use o comando Netsh Winsock Reset para corrigir problema de rede do Windows 10
Antecedentes do Winsock
A API Windows Sockets foi proposta por Martin Hall da JSB Software (mais tarde Stardust Technologies) na discussão BoF (Bird of a Feather) na rede CompuServe BBS em outubro de 1991.
A primeira versão da especificação foi escrita por Martin Hall, Mark Towfiq da Microdyne (mais tarde Sun Microsystems), Geoff Arnold da Sun Microsystems e Henry Sanders e J Allard da Microsoft com a ajuda de muitos outros.
Houve algumas discussões sobre a melhor forma de resolver questões de direitos autorais, propriedade intelectual e potenciais questões antitruste, e consideração de trabalho através da IETF ou do estabelecimento de fundações sem fins lucrativos. No final, foi decidido que a especificação deveria ser protegida por direitos autorais apenas de cinco autores (não afiliados).
Todos os desenvolvedores participantes se recusaram a abreviar o nome simplesmente para Winsock por um longo tempo porque havia muita confusão entre a API e o arquivo de biblioteca DLL (winsock.dll), que apenas expunha a interface geral do WSA ao aplicativo acima dela. Geralmente, acredita-se que apenas garantir que o arquivo DLL exista no sistema pode fornecer suporte completo ao protocolo TCP/IP.
Tecnologia de Winsock
A especificação da API do Windows Socket define duas interfaces: API usada por desenvolvedores de aplicativos e SPI que fornece um método para desenvolvedores de software de rede adicionarem novos módulos de protocolo ao sistema. Cada interface representa um contrato.
A API garante que os aplicativos em conformidade possam ser executados normalmente com a implementação de protocolo em conformidade de qualquer fornecedor de software de rede. O contrato SPI garante que módulos de protocolo em conformidade possam ser adicionados ao Windows para que possam ser usados por aplicativos compatíveis com API.
Embora esses contratos fossem importantes quando o Windows Sockets foi lançado pela primeira vez, eles só têm significado acadêmico agora porque o ambiente de rede requer suporte multiprotocolo. A API do Windows Sockets versão 2.0 inclui a função de utilização de IPX/SPX, embora este protocolo estivesse quase obsoleto quando o WSA 2.0 saiu de fábrica.
O código e o design dos Windows Sockets são baseados em soquetes BSD, mas recursos adicionais são fornecidos para permitir que a API esteja em conformidade com o modelo de programação convencional do Windows.
A API Windows Sockets cobriu quase todos os recursos da API de soquetes BSD, mas existem alguns obstáculos inevitáveis, que foram causados principalmente pelas diferenças fundamentais entre Windows e Unix (embora a diferença entre Windows Sockets e soquetes BSD fosse menor do que a diferença entre o último e FLUXOS).
No entanto, o objetivo do design dos soquetes do Windows era tornar relativamente fácil para os desenvolvedores portar aplicativos baseados em soquete do Unix para o Windows. Não foi suficiente criar APIs que fossem úteis apenas para programas Windows recém-escritos.
Portanto, o Windows Sockets continha muitos elementos projetados para facilitar a portabilidade. Por exemplo, aplicativos Unix poderiam usar a mesma variável errno para registrar erros de rede e erros detectados em funções padrão da biblioteca C.
Como não pode ser implementado no Windows, o Windows Sockets introduziu uma função especial, WSAGetLastError(), para recuperar informações de erro. Esse mecanismo foi muito útil, mas a portabilidade de aplicativos ainda era extremamente complicada.
Muitos aplicativos TCP/IP primitivos foram implementados usando recursos de sistema específicos do Unix (como pseudoterminais e chamadas de sistema fork), e era problemático reproduzir essa função no Windows. Em um tempo relativamente curto, a portabilidade deu lugar ao desenvolvimento de aplicativos Windows dedicados.
Implementações de Winsock
- A Microsoft não forneceu uma implementação do Winsock 1.0.
- A versão 1.1 do Winsock foi fornecida em um pacote complementar (chamado Wolverine) para Windows for Workgroups (codinome Snowball).
- O Winsock versão 2.1 foi fornecido em um pacote complementar para Windows 95.
- A versão mais recente do Winsock 2.x foi fornecida com a nova versão do Windows ou como parte de um service pack.
- O Winsock 2 pode ser estendido por meio de um mecanismo chamado Layered Service Provider (LSP).
![Corrigir Word Not Responding Windows 10 / Mac e recuperar arquivos [10 maneiras] [MiniTool Tips]](https://gov-civil-setubal.pt/img/data-recovery-tips/75/fix-word-not-responding-windows-10-mac-recover-files.jpg)
![[Resolvido!] Como excluir uma página do Word no Windows e Mac?](https://gov-civil-setubal.pt/img/news/26/how-delete-page-word-windows.png)


![O que significa Contagem de setor incorrigível e como corrigi-lo [MiniTool Wiki]](https://gov-civil-setubal.pt/img/minitool-wiki-library/91/what-does-uncorrectable-sector-count-mean-how-fix-it.jpg)
![Correção: falha na instalação da atualização de recurso para o Windows 10 versão 1709 [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/48/fix-feature-update-windows-10-version-1709-failed-install.png)

![O que é UDF (Universal Disk Format) e como usá-lo [MiniTool Wiki]](https://gov-civil-setubal.pt/img/minitool-wiki-library/01/what-is-udf.png)
![Quanto armazenamento é necessário para o banco de dados de disco dinâmico [dicas do MiniTool]](https://gov-civil-setubal.pt/img/disk-partition-tips/77/how-much-storage-is-required.jpg)






![Como corrigir o erro “Seu administrador de TI tem acesso limitado” [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/78/how-fix-your-it-administrator-has-limited-access-error.jpg)


![5 maneiras simples de resolver o código de erro 43 no Mac [dicas do MiniTool]](https://gov-civil-setubal.pt/img/data-recovery-tips/26/5-simple-ways-solve-error-code-43-mac.png)
![Como se livrar da janela Expandir o navegador para ver esta história [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/14/how-get-rid-expand-your-browser-window-see-this-story.jpg)