Ero sivun ”Käyttäjä:Ordyh/Sandbox” versioiden välillä
Ei muokkausyhteenvetoa |
Ei muokkausyhteenvetoa |
||
Rivi 7: | Rivi 7: | ||
==Pistoke Linuxissa== | ==Pistoke Linuxissa== | ||
Pistokkeet saa [[C]]-kielessä käyttöön seuraavasti: | |||
#incldue <sys/types.h> | #incldue <sys/types.h> | ||
#include <sys/socket.h> | #include <sys/socket.h> | ||
Uusi yleiskäyttöinen pistoke luodaan: | |||
int pistoke = socket(int |
Versio 12. helmikuuta 2009 kello 19.01
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
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