12.07.2015 Views

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

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

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

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиСъщите като предните, но имат допълнително поле за настройки насокета.int send(int s, char *msg, int msglen, int flags);int recv(int s, char *msg, int msglen, int flags);Познатите ни функции за работа с файлове. Подава се дескриптор, буферза данни и дължина на буфера.int write(int s, char *msg, int msglen);int read(int s, char *msg, int msglen);Функции за предаване на данни при дейтаграмни сокети, където нямаподдържане на връзката и всеки дейтаграм пътува независимо до адреса.int sendto(int s, char *msg, int msglen, int flags, struct sockaddr*addr, int addrlen);int recvfrom(int s, char *msg, int msglen, int flags, structsockaddr *addr, int *addrlenptr);За разлика от тези, при поточните сокети, маршрута се избираеднократно, след което се записва в сокета и се използва по време натрансфера.Проверка и промяна на опциите на сокета.int getsockopt(int s, int level, int optname, void *optval, int*optlenptr);int setsockopt(int s, int level, int optname, void *optval, intoptlen);level – ниво на протокола: SOL_SOCKET, IPPROTO_TCP, IPPROTO_IP.optname – име на опцията: SO_REUSEADDR, SO_ERROR,SO_BROADCAST и други.optval – стойността на конкретната опция.Помощни функции.При мрежовото програмиране винаги е необходимо да се реши единважен проблем. Това е последователността на обработка на данните – отстарши към младши байт или обратно. Проблемът е наследство отразличното представяне на данните в различни компютърни архитектури. ВIntel архитектурите и подобните на тях данните се обработват в Little-endian,докато в Macintosh в Big-endian. Прието е данните по мрежата да се предаватв Big-endian и затова при всички Intel и подобни архитектури е необходимода се извършва преобразуване. За целта се използват няколко функции:htonl() – 32 битово число от Little в Big-endian (host-to-networklong);ntohl() – 32 битово число от Big в Little-endian (network-to-hostlong);htons() – 16 битово число от Little в Big-endian (host-to-networkshort);ntohs() – 16 битово число от Big в Little-endian (network-to-hostshort).Специфични функции за WinSock интерфейса.Стр.86Сокети – приложение.

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

Saved successfully!

Ooh no, something went wrong!