Käyttäjä:Ordyh/Sandbox
Pistoke (engl. socket) on UNIX-järjestelmissä keskeinen tietoliikenneyhteyttä kuvaava ohjelmointirajapinta. Teknisemmin ilmaistuna pistoke on käyttöjärjestelmän TCP/IP-toteutuksen tarjoama abstraktio. Jokaista UNIX-järjestelmästä Internettiin kulkevaa TCP- ja UDP-yhteyttä vastaa yksi pistoke käyttöjärjestelmän muistissa. Pistokkeeseen kulkeva verkkoliikenne ohjataan pistokkeen avanneelle prosessille. Pistokkeen ei tarvitse välttämättä kuljettaa TCP/IP-liikennettä, vaan sen protokollaksi voidaan määritellä myös esimerkiksi IPX, tai UNIX domain socket, jolloin se on yksi muoto samalla koneella tapahtuvasta prosessienvälisestä kommunikoinnista (engl. Inter Process Communication) eli IPC:stä.
Historiaa
Pistokkeisiin perustuva kommunikointirajapinta on alunperin kehitetty Berkeley Source Distribution eli BSD UNIX-järjestelmille, ja julkaistu BSD-lisenssin alaisuudessa 4.2BSD:n yhteydessä vuonna 1983. Tämän takia toteutus tunnetaan yleisesti nimellä Berkeley Sockets. Myöhemmin mm. Microsoftin Windows järjeslmiin kopoitiin tämä toteutus, ja tämän vuoksi verkko-ohjelmien ohjelmointi Windows-järjestelmissä ei eroa merkittävästi UNIX-järjestelmien käytännöistä. Myöhemmin Windowsille on kirjoitettu oma versio pistokerajapinnasta.
Nykyisin POSIX määrittelee kaikille UNIX-järjestelmille yhteisen pistokerajapinnan, joka ei merkittävästi eroa alkuperäisestä Berkeley Sockets -toteutuksesta.
Pistoke Linuxissa
Pistokkeita käytetään C-kielessä seuraavasti:
#incldue <sys/types.h> #include <sys/socket.h>