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).



![O uso do Kaspersky é seguro? Quão seguro é? Como fazer o download? [Dicas do MiniTool]](https://gov-civil-setubal.pt/img/backup-tips/8A/is-kaspersky-safe-to-use-how-safe-is-it-how-to-download-it-minitool-tips-1.png)
![Sete maneiras de consertar a gagueira de League of Legends [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/49/top-7-ways-fix-league-legends-stuttering.png)
![[Respondido] Qual formato de vídeo o Twitter suporta? MP4 ou MOV?](https://gov-civil-setubal.pt/img/blog/21/what-video-format-does-twitter-support.png)
![Corrigido - erro 4 maneiras de DISM 0x800f0906 Windows 10 [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/85/fixed-4-ways-dism-error-0x800f0906-windows-10.png)




![Para onde vão os arquivos excluídos - problema resolvido [dicas do MiniTool]](https://gov-civil-setubal.pt/img/data-recovery-tips/69/where-do-deleted-files-go-problem-solved.png)

![O que fazer A instalação do DVD falhou ao carregar o driver do monitor de hardware? [Notícias MiniTool]](https://gov-civil-setubal.pt/img/minitool-news-center/52/what-do-dvd-setup-failed-load-hardware-monitor-driver.jpg)


![6 maneiras de conectar o Bluetooth, mas não há som Windows 10 [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/72/6-ways-bluetooth-connected-no-sound-windows-10.png)
![[Guia completo] Como corrigir a recuperação automática do Excel não está funcionando?](https://gov-civil-setubal.pt/img/news/E6/full-guide-how-to-fix-excel-autorecover-not-working-1.png)

