Sockety, Studia PŚK informatyka, Semestr 4, SK kolos


Sockety

TCP/UDP - port

IPv4/IPv6 - adresy

Gniazda strumieniowe(polaczeniowe)- zapewnia dwukierunkowy, wiarygodny, sekwencyjny przeplyw danych bez strat duplikatow, NIE zachowuje granic miedzy rekordami

Gniazda datagramowe(bezpolaczeniowe)- zapewnia dwukierunkowy przeplyw danych, bez gwarancji co do wiarygodnosci, sekwencji i powielania. W gniazdach sa zachowane granice miedzy rekordami.

Ganiazda podstawowe- implementowanie nowych protokolow.

Gdyby bylo za mala miejsc to wyjeb w pierwszej kolejnosci {

Zachowana kolejnosc uzycia funkcji:

int socket(int domain, int type, int protocol);

Wywołując je podajemy przestrzeń nazw (namespace, lub domain), typ połączenia jakie chcemy uzyskać i protokół.

Jeśli jako trzeci parametr wpiszemy 0 system sam wybierze protokół odpowiedni dla danej pary przestrzeń - typ.

int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);

Jako pierwszy paramet przekazujemy deskryptor socketa, który chcemy dowiązać, a jako drugi strukturę z opcjami. Jej typ jest zależny od używanego socketa (PF_INET, czy PF_UNIX), więc przez trzeci parametr przekazujemy jej rozmiar.

int listen(int s, int backlog);

gdzie s jest deskryptorem gniazda, a backlog określa maksymalną długość kolejki połączeń oczekujących na akceptację.

int accept(int s, struct sockaddr *addr, socklen_t *addrlen);

s - socket na którym nasłuchujemy

addr - struktura która zostanie wypełniona danymi dotyczącymi przychodzącego połączenia addrlen - wskaźnik do rozmiaru struktury addr

int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);

sockfd - socket za pomocą którego nawiązujemy połączenie

serv_addr - struktura opisująca adres serwera (sockaddr_un lub sockaddr_in)

addrlen - rozmiar struktury adresu

int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);

int recv(int s, void *buf, size_t len, int flags);

s to socket z którego czytamy,

buf jest jakimś buforem na przychodące dane,

len maksymalną długością

int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);

int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);

int send(int s, const void *msg, size_t len, int flags);

s - socket (jak poprzednio)

msg - wiadomość do wysłania (w powyższym przykładzie tekst)

len - rozmiar wiadomości

flags - flagi - normalnie 0

to - struktura zawierająca adress docelowy, typ został już omówiony przy bind i recvfrom

tolen - długość powyższej struktury

int shutdown(int s, int how);

int close(int s);

s - socket

}

T -tcp, U -udp

Serwer(TU) -> socket(TU) -> bind(TU) -> recevfrom(U)/ sendto(U) -> listen(T) -> accept(T) -> recev(T)/send(T)

Klient(TU) -> socekt(TU) -> bind(U) -> sendto(U)/recevfrom(U) -> connect(T) -> send(T)/recev(T)

IAMP

RFC 2060, TCP 143

Atrybuty

- nr. wiadomosci

- nr. sekwencji

- flaga

- data wewnetrzna

- size

- struktura koperty

- struktura ciala

Stany serwera

- Non Authenticated

- Authenticated State (wybor INBOXA)

- Selected State

- Logout

Komendy

Noop - podtrzymanie polaczenia

Logout - wylogowanie

Non Authenticated - poprawienie metody szyfrowania

Login - logowanie z haslem

Select - wybor rozkazu

Delete - kasuje skrzynke

Rename - zmiana nazwy

Create - select state

Close - wszystkie wiadomosci maja flagi deleted

Search - wyszukanie wiadomosci

Fetch - pobranie wiadomosci

Store - manipuluje flagami

Copy - kopiowanie

Bye - rozlaczenie



Wyszukiwarka

Podobne podstrony:
Netbios, Studia PŚK informatyka, Semestr 4, SK kolos
dhcp, Studia PŚK informatyka, Semestr 4, SK kolos
NCBb, Studia PŚK informatyka, Semestr 4, SK kolos
siecii, Studia PŚK informatyka, Semestr 4, SK kolos
WinSock-PL, Studia PŚK informatyka, Semestr 4, SK kolos
Sieci, Studia PŚK informatyka, Semestr 4, SK kolos
sieci ściąga, Studia PŚK informatyka, Semestr 4, sieci, kolos sieci, SK, sieci komputerowe
Pytania-sieci, Studia PŚK informatyka, Semestr 4, sieci, kolos sieci, SK, sieci komputerowe, gawlik,
Sieci komputerowe, Studia PŚK informatyka, Semestr 4, sieci, kolos sieci, SK, sieci komputerowe, gaw
materialy, Studia PŚK informatyka, Semestr 4, sieci, kolos sieci, SK, sieci komputerowe
http & krypto, Studia PŚK informatyka, Semestr 4, sieci, kolos sieci, SK, sieci komputerowe, Sieci p
ncb, Studia PŚK informatyka, Semestr 4, sieci, kolos sieci, SK, kolos sieci
Sieci komputerowe, Studia PŚK informatyka, Semestr 4, sieci, kolos sieci, SK, sieci komputerowe, sie
Zestaw 3, Studia PŚK informatyka, Semestr 4, sieci, kolos sieci, SK, sieci komputerowe, gawlik, Kolo
ssciaga, Studia PŚK informatyka, Semestr 4, Bazy Danych 2, Bazy Danych Zaliczenie Wykladu, Bazy Dany
Si lab1, Studia PŚK informatyka, Semestr 5, semestr 5, SI 2, Sprawozdanie lab1
sc, Studia PŚK informatyka, semestr 2, archtektura
G312A-K04-P5, Studia PŚK informatyka, Semestr 5, semestr 5, SI 2, Sprawozdanie lab5
02.Protokoły, Studia PŚK informatyka, Semestr 5, semestr 5, moje, Pai, Projektowanie aplikacji inter

więcej podobnych podstron