Лабораторная работа № 8

Сетевое программирование с использованием сокетов

Цель: Разработать клиент-серверное приложение с использованием библиотеки Windows Sockets 2.

Оборудование и ПО: ПК, Visual Studio.

Содержание отчёта: Отчёт представить в виде архивного файла, содержащего проект готового приложения (клиентскую и серверную часть) и документ MS Word Фамилия-лаб8.docx.

Задачи:

1. Ознакомиться с технологией сетевого взаимодействия приложений посредством технологии Socket. Изучить основные функции интерфейса сокетов.

2. Написать приложение, реализующее задание своего варианта.

3. Отладить написанное приложение на локальной машине и проверить его работоспособность в локальной сети.

4. В отчете к лабораторной работе отразить ход выполнения работы, привести текст основных программных функций, ответить на контрольные вопросы.

Ход работы:

1. Познакомиться с примерами клиент-серверных приложений, использующих Windows Sockets 2, можно по следующим ссылкам: TCP клиент и сервер, UDP клиент и сервер.

2. Варианты клиент серверных приложений указаны в таблице 8.1.

3. Контрольные вопросы:

3.1. Укажите минимальный набор функций сервера WinSock (перечислить)

3.2. Какой адрес используется в случае локального сервера? (IP и символьное имя)

3.3. Объясните принцип модели асинхронной передачи (асинхронных сокетов) с использованием VSAAsyncSelect.

Таблица 8.1

Вар.

Задание

1

Реализовать сетевую игру «Камень, ножницы, бумага». Ведение счета по результатам проведенных партий осуществляется на стороне сервера. На стороне клиента предусмотреть получение результатов от сервера.

2

Реализовать сетевую игру «Города» (количество клиентов: 2 и более). На стороне сервера осуществлять автоматическую проверку соответствия сообщений игроков правилам игры.

3

Реализовать сетевую игру «Крестики-нолики» (количество клиентов: 2 и более). Проверку соответствия сообщений игроков правилам игры реализовать на стороне сервера.

4

Реализовать сетевую игру «Быки и коровы» (количество клиентов: 2 и более). Ведение счета по результатам проведенных партий осуществляется на стороне сервера.

5

Реализовать сетевую игру «Морской бой» (количество клиентов: 2 и более). Ведение счета по результатам проведенных партий осуществляется на стороне сервера.

6

Реализовать сетевую игру «Виселица» (количество клиентов: 2 и более). Ведение счета по результатам проведенных партий осуществляется на стороне сервера.

7

Реализовать сетевую игру «Быки и коровы» (с выбором, кто из игроков является сервером, а кто клиентом). Ведение счета по результатам проведенных партий осуществляется на стороне сервера и клиента.

8

Реализовать сетевую игру «Морской бой» (с выбором, кто из игроков является сервером, а кто клиентом). Ведение счета по результатам проведенных партий осуществляется на стороне сервера и клиента.

9

Реализовать сетевую игру «Крестики-нолики» (с выбором, кто из игроков является сервером, а кто клиентом). Проверку соответствия сообщений игроков правилам игры реализовать на стороне сервера и клиента.