En stikkontakt er en av de mest grunnleggende teknologiene for datanettverksprogrammering. Sockets tillater at nettverksprogrammer kan kommunisere ved hjelp av standardmekanismer som er bygd inn i maskinvare- og operativsystemer i nettverket.
Selv om det kan høres ut som bare en annen funksjon i utviklingen av Internett-programvare, fantes sokkelteknologi lenge før Internett. Og mange av dagens mest populære nettverksprogrammer stole på stikkontakter.
Hva Sockets kan gjøre for nettverket ditt
En stikkontakt representerer en enkelt forbindelse mellom nøyaktig to stykker programvare (en såkalt punkt til punkt forbindelse). Mer enn to stykker programvare kan kommunisere med klient / server eller distribuerte systemer ved å bruke flere kontakter. For eksempel kan mange nettlesere samtidig kommunisere med en enkelt webserver via en gruppe stikkontakter som er laget på serveren.
Sokkelbasert programvare kjører vanligvis på to separate datamaskiner på nettverket, men stikkontakter kan også brukes til å kommunisere lokalt ( inter ) på en enkelt datamaskin. Sockets er toveis , noe som betyr at hver side av forbindelsen er i stand til både å sende og motta data. Noen ganger er det ene programmet som initierer kommunikasjon kalt "klienten" og det andre programmet "serveren", men denne terminologien fører til forvirring i peer to peer-nettverk og bør generelt unngås.
Socket APIs og biblioteker
Flere biblioteker som implementerer standard applikasjonsprogrammeringsgrensesnitt (APIer) finnes på Internett. Den første mainstream-pakken - Berkeley Socket Library er fortsatt mye brukt på UNIX-systemer. En annen svært vanlig API er Windows Sockets (WinSock) -biblioteket for Microsoft-operativsystemer. Sammenlignet med andre datateknologier er socket-APIer ganske modne: WinSock har vært i bruk siden 1993 og Berkeley-stikkontakter siden 1982.
Socket-APIene er relativt små og enkle. Mange av funksjonene er lik de som brukes i filinngang / utgangrutiner som lese(), skrive(), og Lukk(). Den faktiske funksjonen ringer til bruk, avhenger av det valgte programmeringsspråket og sokkelbiblioteket.
Socket Interface Typer
Socket grensesnitt kan deles inn i tre kategorier:
- Strøm stikkontakter, den vanligste typen, krever at de to kommunikasjonspartene først etablerer en stikkontakt, hvorefter data som sendes gjennom denne forbindelsen, vil bli garantert å komme i samme rekkefølge som den ble sendt - såkalt tilkoblingsorientert programmeringsmodell .
- Datagram gram~~POS=HEADCOMP stikkontakter tilbyr "forbindelses-mindre" semantikk. Med datagrammer er tilkoblinger implisitte heller enn eksplisitte som med bekker. Enten parten sender bare datagrammer etter behov og venter på den andre til å svare; meldinger kan gå tapt i overføring eller mottatt ute av drift, men det er søknadens ansvar og ikke stikkontaktene for å håndtere disse problemene. Implementering av datagram-stikkontakter kan gi noen applikasjoner et ytelsesforbedring og ekstra fleksibilitet i forhold til bruk av strømuttak, noe som begrunner bruken i noen situasjoner.
- Den tredje typen stikkontakt - rå socket - omgår bibliotekets innebygde støtte for standardprotokoller som TCP og UDP. Råkontakter brukes til tilpasset lavnivåprotokollutvikling.
Stikkontakt i nettverksprotokoller
Moderne nettverkskontakter brukes vanligvis i forbindelse med Internett-protokollene - IP, TCP og UDP. Biblioteker som implementerer stikkontakter for Internet Protocol bruker TCP for strømmer, UDP for datagrammer og IP selv for røde stikkontakter.
For å kommunisere over Internett bruker IP-sokkelbiblioteker IP-adressen til å identifisere bestemte datamaskiner. Mange deler av Internett jobber med navngivningstjenester, slik at brukerne og sokkelprogrammene kan arbeide med datamaskiner etter navn ( f.eks , "thiscomputer.wireless.about.com") i stedet for ved adresse ( f.eks , 208.185.127.40). Strøm- og datagramkontakter bruker også IP-portnumre for å skille flere applikasjoner fra hverandre. For eksempel kan nettlesere på Internett vite å bruke port 80 som standard for sokkelkommunikasjon med webservere.