Práca so vstupom a výstupom:
Synchrónna práca so vstupom:
Výhody:
Jednoduchosť
Nevýhody:
Čakanie sa môže natiahnuť do nekonečna (deadlock)
Asynchrónna práca so vstupom:
Aplikácie asynchrónneho programovania:
Asynchrónne programovanie v C
Na nízkej úrovni:
Na vyššej úrovni:
Asynchrónne programovanie v iných programovacích jazykoch
Server Client socket() socket() bind() connect() listen() accept() read() <---- write() write() ----> read() close() close()
O sokety sa stará operačný systém
int sockfd = socket(domain, type, protocol);
sockfd - číslo soketu, podobné ako smerník na súbor.
sockfd
Nastavenie vlastností pre socket.
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
Väzba na konkrétne rozhranie, vyhradenie pre počúvajúci server:
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
Počúvanie na porte:
int listen(int sockfd, int backlog);
int new_socket= accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
Je podobné ako do súboru
read() write()
#include <manifest.h> #include <socket.h> #include <bsdtypes.h> #include <bsdtime.h> int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)
fork()
pthread