Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Проектування, реалізація і тестування мережевого програми, що реалізує гру "Двадцять одне"

Реферат Проектування, реалізація і тестування мережевого програми, що реалізує гру "Двадцять одне"





ачі даних по мережі. Нарешті, останній атрибут визначає протокол, використовуваний для передачі даних. Часто протокол однозначно визначається по домену і типу сокета. У цьому випадку в якості третього параметра функції socket можна передати 0, що відповідає протоколу за замовчуванням. Тим не менш, іноді (наприклад, при роботі з низькорівневими сокетами) потрібно задати протокол явно. Числові ідентифікатори протоколів залежать від обраного домену; їх можна знайти в документації. p align="justify"> Перш ніж передавати дані через сокет, його необхідно пов'язати з адресою у вибраному домені (цю процедуру називають ім'ям сокета). Іноді зв'язування здійснюється неявно (всередині функцій connect і accept), але виконувати його необхідно у всіх випадках. Вид адреси залежить від обраного вами домену. У Unix-домені це текстова рядок - ім'я файлу, через який відбувається обмін даними. В Internet-домені адресу задається комбінацією IP-адреси і 16-бітного номера порту. IP-адреса визначає хост в мережі, а порт - конкретний сокет на цьому хості. Протоколи TCP і UDP використовують різні простору портів. p align="justify"> Для явного зв'язування сокета з деякою адресою використовується функція bind. Її прототип має вигляд:

bind (int sockfd, struct sockaddr * addr, int addrlen);


В якості першого параметра передається дескриптор сокета, який ми хочемо прив'язати до заданого адресою. Другий параметр, addr, містить покажчик на структуру з адресою, а третій - довжину цієї структури. p align="justify"> Установка з'єднання на стороні сервера складається з чотирьох етапів. Спочатку сокет створюється і прив'язується до локального адресою. Якщо комп'ютер має кілька мережевих інтерфейсів з різними IP-адресами, то можна приймати з'єднання тільки з одного з них, передавши його адресу функції bind. Якщо ж є потреба з'єднуватися з клієнтами через будь-який інтерфейс, необхідно задати в якості адреси константу INADDR_ANY. Що стосується номера порту, то можна задати конкретний номер або 0 (у цьому випадку система сама вибере довільний закинутий в даний момент номер порту). p align="justify"> На наступному кроці створюється черга запитів на з'єднання. При цьому сокет переводиться в режим очікування запитів з боку клієнтів. Все це виконує функція

listen (int sockfd, int backlog);


Перший параметр - дескриптор сокета, а другий задає розмір черги запитів. Кожен раз, коли черговий клієнт намагається з'єднатися з сервером, його запит ставиться в чергу, оскільки сервер може бути зайнятий обробкою інших запитів. Якщо чергу заповнена, всі наступні запити будуть ігноруватися. Коли сервер готовий обслужити черговий запит, він використовує функцію


int accept (int sockfd, void * addr, int * addrlen);


Функція accept створює для спілкування з клієнтом ...


Назад | сторінка 3 з 9 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Основні поняття (сайт, IP-адресу, порт, сокет, сервер, клієнт)
  • Реферат на тему: Структура команди мови запитів SQL. Простий запит. Багатотабличного запит
  • Реферат на тему: Коли працювати можна менше ...
  • Реферат на тему: Анексія Криму, як можна вірішіті Конфлікт України с Россией чі можна его ві ...
  • Реферат на тему: Проектування і реалізація бази даних в архітектурі "клієнт-сервер" ...