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).
![Introdução à separação prioritária do Win32 e seu uso [Notícias MiniTool]](https://gov-civil-setubal.pt/img/minitool-news-center/12/introduction-win32-priority-separation.jpg)

![[Guia passo a passo] Download e instalação do Box Drive para Windows/Mac [Dicas do MiniTool]](https://gov-civil-setubal.pt/img/news/0A/step-by-step-guide-box-drive-download-install-for-windows/mac-minitool-tips-1.png)



![O que é RtHDVCpl.exe? É seguro e você deve removê-lo? [Notícias MiniTool]](https://gov-civil-setubal.pt/img/minitool-news-center/01/what-is-rthdvcpl-exe.png)
![Quantos megabytes em um gigabyte [MiniTool Wiki]](https://gov-civil-setubal.pt/img/minitool-wiki-library/40/how-many-megabytes-gigabyte.png)
![4 correções para o alto uso da CPU do Svchost.exe (100%) no Windows 10 [Notícias MiniTool]](https://gov-civil-setubal.pt/img/minitool-news-center/51/4-fixes-svchost-exe-high-cpu-usage-windows-10.jpg)


![O Multiplayer do Risk of Rain 2 não está funcionando? Veja como consertar! [Notícias MiniTool]](https://gov-civil-setubal.pt/img/minitool-news-center/41/is-risk-rain-2-multiplayer-not-working.jpg)



![[Solução] Como corrigir o código de erro 0x80070005 [Dicas MiniTool]](https://gov-civil-setubal.pt/img/backup-tips/58/how-fix-error-code-0x80070005.jpg)


![Não consigo baixar nada em um computador com Windows 10 [resolvido]](https://gov-civil-setubal.pt/img/partition-disk/52/can-t-download-anything-windows-10-computer.png)
