Ero sivun ”Pistoke” versioiden välillä

Siirry navigaatioon Siirry hakuun
160 merkkiä lisätty ,  12. helmikuuta 2009
p
typo, syntax hilight
(Ak: Uusi sivu: '''Pistoke''' (engl. '''''socket''''') on UNIX-järjestelmissä keskeinen tietoliikenneyhteyttä kuvaava ohjelmointirajapinta. Teknisemmin ilmaistuna pistoke on käyttöjärjestel...)
 
p (typo, syntax hilight)
Rivi 17: Rivi 17:
==Esimerkki pistokkeesta Linuxissa==
==Esimerkki pistokkeesta Linuxissa==
Pistokkeet saa [[C]]-kielessä käyttöön seuraavasti:
Pistokkeet saa [[C]]-kielessä käyttöön seuraavasti:
#incldue <sys/types.h>
<source lang="c">
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/socket.h>
</source>


Uusi ''käyttämätön pistoke'' luodaan:
Uusi ''käyttämätön pistoke'' luodaan:
int socket(int domain, int type, int protocol);
<source lang="c">
int socket(int domain, int type, int protocol);
</source>


Esim. palvelinpistokkeesta
Esim. palvelinpistokkeesta
#include <netinet/in.h>
<source lang="c">
int pistoke = socket(PF_INET6, SOCK_STREAM, 0)
#include <netinet/in.h>
int pistoke = socket(PF_INET6, SOCK_STREAM, 0)
</source>


Luo [[IPv6]]-protokollaa käyttävän TCP-pistokkeen.
Luo [[IPv6]]-protokollaa käyttävän TCP-pistokkeen.


Pistoke sidotaan (engl. bind) isäntäkoneen johonkin porttiin seuraavasti:
Pistoke sidotaan (engl. bind) isäntäkoneen johonkin porttiin seuraavasti:
int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);
<source lang="c">
int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);
</source>


ja sitten pistoke merkitään halukkaaksi vastaanottamaan paketteja:
ja sitten pistoke merkitään halukkaaksi vastaanottamaan paketteja:
int listen(int sockfd, int backlog);
<source lang="c">
int listen(int sockfd, int backlog);
</source>


Pistokkeesta tulee ''kuunteleva pistoke''.
Pistokkeesta tulee ''kuunteleva pistoke''.


Tämän jälkeen yhteyksiä voi ottaa vastaan yksitellen <tt>accept()</tt> kutsulla:
Tämän jälkeen yhteyksiä voi ottaa vastaan yksitellen <tt>accept()</tt> kutsulla:
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
<source lang="c">
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
</source>


<tt>accept</tt>in palauttama <tt>int</tt>-arvo on samalla mudostetun yhteyden <tt>socketfd</tt>-arvo, jota voi lukea ja johon voi kirjoittaa tavallisen tiedoston tapaan <tt>fread()</tt> ja <tt>fwrite()</tt> -kutsuilla.
<tt>accept</tt>in palauttama <tt>int</tt>-arvo on samalla mudostetun yhteyden <tt>socketfd</tt>-arvo, jota voi lukea ja johon voi kirjoittaa tavallisen tiedoston tapaan <tt>fread()</tt> ja <tt>fwrite()</tt> -kutsuilla.

Navigointivalikko