|
|
Rivi 1: |
Rivi 1: |
| '''Pistoke''' (engl. '''''socket''''') on [[UNIX]]-järjestelmissä keskeinen tietoliikenneyhteyttä kuvaava ohjelmointirajapinta. Teknisemmin ilmaistuna pistoke on käyttöjärjestelmän [[TCP/IP]]-toteutuksen tarjoama [[wikipedia:fi:Abstrakti tietotyyppi|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 [[prosessi]]lle. 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. '''''I'''nter '''P'''rocess '''C'''ommunication'') eli [[IPC]]:stä.
| | Ei mitään täällä juuri nyt |
| | |
| ==Historiaa==
| |
| Pistokkeisiin perustuva kommunikointirajapinta on alunperin kehitetty Berkeley Source Distribution eli [[BSD]] UNIX-järjestelmille, ja julkaistu [[BSD-lisenssi]]n 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==
| |
| Pistokkeet saa [[C]]-kielessä käyttöön seuraavasti:
| |
| #incldue <sys/types.h>
| |
| #include <sys/socket.h>
| |
| | |
| Uusi yleiskäyttöinen pistoke luodaan:
| |
| int pistoke = socket(int
| |