Winsock

Na kọmpụta, **Windows Sockets API** (**WSA**), nke e mechara mee ka ọ dị mkpirikpi **Winsock**, bụ interface mmemme ngwa (API) nke na-akọwa etu ngwanrọ ngwa netwọk Windows ga-esi nweta ọrụ netwọk, ọkachasị TCP/IP / IP. Ọ na-akọwa interface ọkọlọtọ n'etiti ngwa onye ahịa Windows TCP / IP (dị ka Onye ahịa FTP ma ọ bụ ihe nchọgharị weebụ) na usoro TCP / IP dị n'okpuru. Nkọwa a dabere na Berkeley sockets API eji na BSD maka nkwukọrịta n'etiti mmemme.

## Ihe ndị mere n'oge gara aga
Usoro sistemụ arụmọrụ Microsoft mbụ, ma MS-DOS na Microsoft Windows, nyere ikike netwọk dị oke ala, dabere na NetBIOS. Karịsịa, Microsoft enyeghị nkwado maka usoro TCP / IP n'oge ahụ. Ọtụtụ ìgwè mahadum na ndị na-ere ahịa, gụnyere otu PC / IP na MIT, FTP Software, Sun Microsystems, Ungermann-Bass, na Excelan, webatara ngwaahịa TCP / IP maka MS-DOS, mgbe mgbe dị ka akụkụ nke ngwaike / ngwanrọ. Mgbe a tọhapụrụ Windows 2.0, ndị na-ere ahịa ndị a sonyeere ndị ọzọ dị ka Distinct na NetManage n'inye TCP / IP maka Windows.

Ihe na-adịghị mma nke ndị na-ere ahịa a niile chere ihu bụ na onye ọ bụla n'ime ha jiri API nke ha (Application Programming Interface). Na-enweghị otu ụdị mmemme ọkọlọtọ, ọ siri ike ime ka ndị mmepe ngwanrọ nwere onwe ha mepụta ngwa netwọk nke ga-arụ ọrụ na mmejuputa TCP / IP nke onye na-ere ahịa ọ bụla. Tinye eziokwu ahụ bụ na ndị ọrụ ikpeazụ na-akpachara anya ka a kpọchie ha n'ime otu onye na-ere ahịa ma o doro anya na ọ dị mkpa ka a kwado ha.

Ọrụ Windows Sockets malitere na nnọkọ Birds Of A Feather nke e mere na Interop '91 na San Jose n'October 10, 1991.  Ọ dabeere na nkọwapụta socket nke NetManage mepụtara na nke ọ tinyere na ngalaba ọha na eze na nzukọ a. N'oge ahụ, NetManage socket bụ naanị 100% DLL dabeere, ngwaahịa multi-threaded maka Windows 3.0 dị. Martin Hall, Mark Towfiq nke Microdyne (mgbe e mesịrị Sun Microsystems), Geoff Arnold nke Sun Microssystems, na Henry Sanders na J Allard nke Microsoft dere mbipụta mbụ nke nkọwa ahụ, site n'enyemaka nke ọtụtụ ndị ọzọ.   &#x5B;**'&#x5D;</sup> E nwere mkparịta ụka ụfọdụ banyere otu esi edozi ikike nwebisiinka, ihe onwunwe ọgụgụ isi, na nsogbu ndị nwere ike imegide ntụkwasị obi, a tụlere ịrụ ọrụ site na IETF ma ọ bụ iguzobe ntọala na-enweghị uru. N'ikpeazụ, e kpebiri na nkọwa ahụ ga-abụ naanị ndị edemede ise ahụ ka ha bụrụ ndị na-enweghị njikọ.

Ndị mmepe niile na-esonye guzogidere mbelata aha ahụ ka ọ bụrụ Winsock dị mfe ruo ogologo oge, [a chọrọ nkọwa] ebe enwere nnukwu mgbagwoju anya n'etiti ndị ọrụ.n'etiti API na faịlụ ọba akwụkwọ DLL (winsock.dll) nke na-ekpughe naanị interfaces WSA nkịtị na ngwa dị n'elu ya. Ndị ọrụ ga-na-ekwenyekarị na naanị ijide n'aka na faịlụ DLL dị na sistemụ ga-enye nkwado protocol TCP/IP zuru oke.

== Teknụzụ ==
Nkọwapụta Windows Sockets [[API]] na-akọwa interface abụọ: API nke ndị mmepe ngwa na-eji, na SPI, nke na-enye ụzọ maka ndị mmepe ngwanrọ netwọk iji gbakwunye modulu protocol ọhụrụ na usoro ahụ. Njikọ ọ bụla na-anọchite anya nkwekọrịta. API na-ekwe nkwa na ngwa kwekọrọ ga-arụ ọrụ nke ọma na mmejuputa usoro kwekọrọ site na onye ọ bụla na-ere ngwanrọ netwọk. Nkwekọrịta SPI na-ekwe nkwa na enwere ike ịgbakwunye usoro nkwekọrịta na Windows ma si otú a ga-abụ nke ngwa API ga-eji mee ihe. Ọ bụ ezie na nkwekọrịta ndị a dị mkpa mgbe a tọhapụrụ Windows Sockets na mbụ, ebe ọ bụ na gburugburu netwọk chọrọ nkwado multi-protocol (lee n'elu) ha bụ ugbu a naanị mmasị agụmakwụkwọ. Ntinye na Windows Sockets API version 2.0 bụ ọrụ iji IPX / SPX, ọ bụ ezie na usoro iwu ahụ adịlarị n'oge WSA 2.0 zitere. Microsoft ebutewo usoro TCP/IP / IP na nsụgharị Windows niile na-adịbeghị anya, ọ nweghịkwa ihe ndị ọzọ dị mkpa. Enweghịkwa mmasị dị ukwuu n'ịmejuputa usoro ndị ọzọ karịa TCP / IP.

Koodu na imewe Windows Sockets dabere na sockets BSD, mana ọ na-enye ọrụ ndị ọzọ iji kwe ka API gbasoo usoro mmemme Windows. Windows Sockets API kpuchiri ihe fọrọ nke nta ka ọ bụrụ atụmatụ niile nke sockets API BSD, mana enwere ụfọdụ ihe mgbochi a na-apụghị izere ezere nke na-esikarị na ọdịiche dị n'etiti Windows na Unix (ọ bụ ezie na Windows Sockets dị obere na sockets BSD karịa nke ikpeazụ mere na STREAMS). Ọkpụkpọ ọrụ niile dị na API na-amalite na aha , dịka  maka izipu data na oghere ejikọrọ.  

Otú ọ dị, ọ bụ ebumnuche imewe nke Windows Sockets na ọ ga-adịtụ mfe maka ndị mmepe na ngwa ndị dabeere na ọdụ ụgbọ mmiri site na Unix ruo Windows. A naghị ele ya anya dị ka ihe zuru ezu iji mepụta API nke bara uru naanị maka mmemme Windows e dere ọhụrụ. N'ihi nke a, Windows Sockets gụnyere ọtụtụ ihe ndị e mere iji mee ka ọ dịrị mfe ịkwagharị. Dịka ọmụmaatụ, ngwa Unix nwere ike iji otu errno variable dekọọ ma njehie netwọk na njehie achọpụta n'ime ọrụ ọbá akwụkwọ C. Ebe ọ bụ na nke a agaghị ekwe omume na Windows, Windows Sockets webatara ọrụ raara onwe ya nye, , iji weghachite ozi njehie.  Usoro ndị dị otú ahụ bara uru, mana ntinye ngwa nọgidere na-agbagwoju anya. E mepụtara ọtụtụ ngwa TCP/IP / IP mbụ site na iji atụmatụ sistemụ kpọmkwem na Unix, dị ka pseudo terminals na oku usoro fork, na imepụtaghachi ọrụ dị otú ahụ na Windows bụ nsogbu. N'ime oge dị mkpirikpi, porting nyere ohere maka mmepe nke ngwa Windows raara onwe ya nye.

== Nkọwapụta ==

* Version 1.0 (June 1992) kọwara ọrụ bụ isi nke Winsock. A na-edebe ya nso na interface dị ugbu a nke Berkeley sockets iji mee ka porting nke ngwa ndị dị ugbu a dị mfe. A gbakwunyere mgbatị Windows ole na ole, ọkachasị maka ọrụ asynchronous na ọkwa ozi.

: Ọ bụ ezie na akwụkwọ ahụ egbochighị nkwado TCP / IP, TCP na UDP bụ naanị protocols a kpọtụrụ aha n'ụzọ doro anya. Ọtụtụ ndị na-ere ahịa na-enye nkwado TCP / IP, ọ bụ ezie na Winsock sitere na DEC gụnyere nkwado DECNet.

* Version 1.1 (January 1993) mere ọtụtụ obere mgbazi na nkọwapụta nke nkọwa ahụ. Mgbanwe kachasị mkpa bụ itinye ọrụ . 
* Winsock 2 bụ ndọtị na-adaba azụ nke Winsock 1.1. Ọ gbakwunyere nkwado maka mkpebi aha na-adabere na protocol, ọrụ asynchronous na ọkwa ndị dabeere na ihe omume na usoro mmezu, mmejuputa usoro, multicasting, na ogo ọrụ. O mekwara nkwado maka ọtụtụ protocols, gụnyere IPX / SPX na DECnet. Nkọwapụta ọhụrụ ahụ nyere ohere ịkekọrịta sockets n'etiti usoro, arịrịọ njikọ na-abata ka a nabata ya, na ọrụ ụfọdụ a ga-eme na ìgwè socket karịa sockets ọ bụla. Ọ bụ ezie na nkọwapụta ọhụrụ ahụ dị iche na Winsock 1, ọ nyere isi iyi na ọkwa abụọ na Winsocks 1.1 API. Otu n'ime mgbakwunye ndị a na-amaghị nke ọma bụ Service Provider Interface (SPI) API na Layered Service Providers.
* Nsụgharị 2.0.x (May 1994 gaa n'ihu) nwere ọnọdụ ederede n'ime, a kpọghịkwa ya dị ka ụkpụrụ ọha na eze.
* Version 2.1.0 (January 1996) bụ ntọhapụ mbụ nke Winsock 2 specification.
* Version 2.2.0 (May 1996) gụnyere ọtụtụ obere mgbazi, nkọwa, na aro iji ya. Ọ bụkwa ụdị mbụ wepụrụ nkwado maka ngwa Windows 16-bit.
* Version 2.2.1 (May 1997) na Version 2.2.2 (August 1997) webatara obere mmelite ọrụ. A gbakwunyere usoro maka ịjụ ajụjụ na ịnata ọkwa nke mgbanwe na nhazi netwọk na usoro.
* IPv6 Technical Preview maka Windows 2000 (December 2000) hụrụ mmejuputa mbu nke RFC 2553 (March 1999, mgbe e mesịrị RFC 3493), API kwụụrụ onwe ya maka mkpebi aha, nke ga-aghọ akụkụ nke Winsock na Windows XP.

== Mmelite na Windows 8 ==
Windows 8 gụnyere ndọtị "RIO" (Registered IO) maka Winsock.  A na-eme ndọtị ndị a iji belata ihe onye ọrụ na-eme na mgbanwe nke kernel maka ụzọ data netwọk na ụzọ ọkwa, mana jiri ihe ndị ọzọ nke Windows TCP na UDP (ma jiri kaadị netwọk dị ugbu a). Ụzọ nhazi (dịka ọmụmaatụ, ọrụ "njikọ") agbanwebeghị site na ụzọ Winsock.

== Mmejuputa ==

=== Mmejuputa Microsoft ===

* Microsoft enyeghị mmejuputa nke Winsock 1.0.
* E nyere mbipute 1.1 nke Winsock na ngwugwu mgbakwunye (nke a na-akpọ Wolverine) maka Windows maka Workgroups (koodu a na- woowe **Snowball*'). Ọ bụ akụkụ dị mkpa nke Windows 95 na Windows NT site na nsụgharị 3.5 na-aga n'ihu (nke mbụ dị na Windows NT, mbipute 3.1, gụnyere naanị mmejuputa TCP / IP nke na-ezughị ezu dabere na AT&T UNIX System V "STREAMS" API ). 
* E nyere mbipụta 2.1 nke Winsock na ngwugwu mgbakwunye maka Windows 95. Ọ bụ akụkụ dị mkpa nke Windows 98, Windows NT 4.0, na mbipụta Windows niile sochirinụ.  (Microsoft enyeghị mmejuputa nke Winsock 2 maka Windows 3.x ma ọ bụ Windows NT 3.x.) 
* E nyela nsụgharị Winsock 2.x na-adịbeghị anya na mbipụta Windows ọhụrụ ma ọ bụ dịka akụkụ nke ngwugwu ọrụ.
* Winsock 2 nwere ike ịgbasa site na usoro a maara dị ka Layered Service Provider (LSP). Winsock LSPs dị maka ọtụtụ ebumnuche bara uru, gụnyere njikwa nne na nna Ịntanetị, nzacha ọdịnaya weebụ, QoS wdg. A na-edebe usoro nhazi nke ndị na-enye ihe niile na Winsock Catalog. Na nsụgharị Windows gara aga, iwepu buggy LSP nwere ike ịkpata nrụrụ aka nke Winsock catalog na ndekọ, nke nwere ike ịpụta na mfu nke *njikọ netwọk niile''. Winsock na Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 na sistemụ arụmọrụ Windows niile mechara nwee ikike ịgwọ onwe ya mgbe onye ọrụ wepụrụ ụdị LSP.

### Ntinye ndị ọzọ

* N'etiti ndị na-ere ahịa ndị ọzọ na-enye usoro TCP / IP na UDP / IP na Winsock bụ (n'usoro mkpụrụ akwụkwọ) 3Com, Beame & Whiteside, DEC, Distinct, Frontier, FTP Software, IBM, Microdyne, NetManage, Novell, Sun Microsystems na Trumpet Software International.
*  Winsock nke Peter Tattam  otu n'ime mmejuputa Winsock 1.0 ole na ole enwere ike itinye n'okpuru Windows 3.0, nke na-enweghị nkwado maka Winsock.  bụkwa mmejuputa shareware kachasị ewu ewu nke Winsock maka Windows 3.x. Trumpet Winsock 5.0 dị maka Windows 95/98 na Windows NT ma gụnye Winsock 1.1 kwekọrọ na IPv6 maka sistemụ arụmọrụ ndị a.
* Ọrụ mmanya ahụ nwere isi iyi na binary dakọtara reimplementation nke Winsock n'elu BSD sockets API.

## Hụkwa

* Okpokoro Berkeley
* Onye na-enye Ọrụ Layered (Winsock LSP) 

## Edensibia

## Njikọ mpụga

* MSDN - Windows Socket 2 Gịnị bụ Ntuziaka Ọhụrụ
* MSDN - Windows Socket 2 Mmalite peeji
* Sockets FAQ - Windows Sockets FAQ
* na Wayback Machine (echekwa March 3, 2016) - Winsock C++ Programming
* Iwere mmemme Berkley Socket gaa Winsock
* Windows Network Development blog - Microsoft developer blog na-ekpuchi Winsock, WSK, WinINet, Http.sys, WinHttp, QoS na System.Net, na-elekwasị anya na atụmatụ ndị a na-ewebata na Windows Vista
* Akụkọ dị mkpirikpi nke Microsoft na Weebụ
* Ihe ọmụma mmepe WinSock
* Ajụjụ ọnụ nke Winsock Programmer