12.07.2015 Views

Виртуална Лаборатория по Компютърни Мрежи и Разпределени ...

Виртуална Лаборатория по Компютърни Мрежи и Разпределени ...

Виртуална Лаборатория по Компютърни Мрежи и Разпределени ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиdomain – PF_UNIX или PF_INET.type – SOCK_STREAM, SOCK_DGRAM, SOCK_RAW.protocol – обикновено се оставя 0, защото се подразбира от типа насокета, но може да се зададе при RAW сокети – IP, IPX.Обвързване на сокет с локален адрес и порт – използва се основно присървъра, но е възможно и при клиента.int bind(int s, struct sockaddr *addr, int addrlen);s – дескриптор на сокета.addr – указател към структура, съдържаща локалния адрес.За клиента обикновено не е необходимо да се използва тази операция,тъй като той използва порт от свободните и локалния адрес по подразбиране.Затваряне – извършва се при клиента и сървъра.int close(int s);Затваря сокета като файл. Унищожава дескриптора.int shutdown(int s, int how);В зависимост от стойността на how може да прекъсне връзката в едната, вдругата или и в двете посоки. (0 – затваря за получаване, 1 – затваря запращане, 2 – затваря и в двете посоки.)Свързване към сокет – извършва се при клиента, за да се свърже къмсъществуващ сървърен сокет.int connect(int s, struct sockaddr *addr, int addrlen);s – дескриптор на сокета.addr – указател към структура, съдържаща адреса на сървъра.Слушане на определен порт – при сървъра. Поставя сървърния сокет врежим на чакане на заявки. При приемане на заявка я поставя в опашка заобработване.int listen(int s, int backlog);s – дескриптор на сокета.backlog – задава големината на опашката за приеманите заявки.Приемане на заявка за обработка – при сървъра. Взема се заявка отопашката за обработване и се създава нов сокет за нея. Така се създавадвойка сокети, които комуникират и се освобождава сървърния сокет даслуша отново.int s1 = accept(int s, struct sockaddr *addr, int *addrlenptr);s – дескриптор на сокета.addr – указател към структура, съдържаща адреса на клиента.Връща дескриптор на новосъздаден сокет – s1.Предаване на данни – от двата хоста.Стр.85Сокети – приложение.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!