🗊Презентация Курсовая работа. Разработка сетевого программного обеспечения

Нажмите для полного просмотра!
Курсовая работа. Разработка сетевого программного обеспечения, слайд №1Курсовая работа. Разработка сетевого программного обеспечения, слайд №2Курсовая работа. Разработка сетевого программного обеспечения, слайд №3Курсовая работа. Разработка сетевого программного обеспечения, слайд №4Курсовая работа. Разработка сетевого программного обеспечения, слайд №5Курсовая работа. Разработка сетевого программного обеспечения, слайд №6Курсовая работа. Разработка сетевого программного обеспечения, слайд №7Курсовая работа. Разработка сетевого программного обеспечения, слайд №8Курсовая работа. Разработка сетевого программного обеспечения, слайд №9Курсовая работа. Разработка сетевого программного обеспечения, слайд №10Курсовая работа. Разработка сетевого программного обеспечения, слайд №11Курсовая работа. Разработка сетевого программного обеспечения, слайд №12Курсовая работа. Разработка сетевого программного обеспечения, слайд №13Курсовая работа. Разработка сетевого программного обеспечения, слайд №14Курсовая работа. Разработка сетевого программного обеспечения, слайд №15Курсовая работа. Разработка сетевого программного обеспечения, слайд №16Курсовая работа. Разработка сетевого программного обеспечения, слайд №17Курсовая работа. Разработка сетевого программного обеспечения, слайд №18Курсовая работа. Разработка сетевого программного обеспечения, слайд №19Курсовая работа. Разработка сетевого программного обеспечения, слайд №20Курсовая работа. Разработка сетевого программного обеспечения, слайд №21Курсовая работа. Разработка сетевого программного обеспечения, слайд №22Курсовая работа. Разработка сетевого программного обеспечения, слайд №23Курсовая работа. Разработка сетевого программного обеспечения, слайд №24Курсовая работа. Разработка сетевого программного обеспечения, слайд №25Курсовая работа. Разработка сетевого программного обеспечения, слайд №26Курсовая работа. Разработка сетевого программного обеспечения, слайд №27Курсовая работа. Разработка сетевого программного обеспечения, слайд №28Курсовая работа. Разработка сетевого программного обеспечения, слайд №29Курсовая работа. Разработка сетевого программного обеспечения, слайд №30Курсовая работа. Разработка сетевого программного обеспечения, слайд №31Курсовая работа. Разработка сетевого программного обеспечения, слайд №32Курсовая работа. Разработка сетевого программного обеспечения, слайд №33Курсовая работа. Разработка сетевого программного обеспечения, слайд №34Курсовая работа. Разработка сетевого программного обеспечения, слайд №35Курсовая работа. Разработка сетевого программного обеспечения, слайд №36Курсовая работа. Разработка сетевого программного обеспечения, слайд №37Курсовая работа. Разработка сетевого программного обеспечения, слайд №38

Содержание

Вы можете ознакомиться и скачать презентацию на тему Курсовая работа. Разработка сетевого программного обеспечения. Доклад-сообщение содержит 38 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Курсовая работа
Описание слайда:
Курсовая работа

Слайд 2





Общие сведения
Цель работы – получить навыки разработки сетевого программного обеспечения.
Сеть – на основе стека TCP/IP.
Базовый проект – сервер и клиент игры «Крестики нолики 3x3».
Сервер – программа, обслуживающая запросы от пользователей и управляющая несколькими игровыми ситуациями.
Клиент – программа, обеспечивающая интерфейс пользователя (под GNU/Linux в текстовом режиме).
Описание слайда:
Общие сведения Цель работы – получить навыки разработки сетевого программного обеспечения. Сеть – на основе стека TCP/IP. Базовый проект – сервер и клиент игры «Крестики нолики 3x3». Сервер – программа, обслуживающая запросы от пользователей и управляющая несколькими игровыми ситуациями. Клиент – программа, обеспечивающая интерфейс пользователя (под GNU/Linux в текстовом режиме).

Слайд 3





Часть 1. Разработка алгоритма игровой ситуации и протокола взаимодействия клиентской и серверной частей
Опишите правила игры и алгоритм проведения игровой ситуации «крестики-нолики» (3x3).
Разработайте протокол взаимодействия клиентской и серверной частей приложения при: создании новой игры, подключении игроков к ранее созданной игре, проведении игровой ситуации и завершении её. Заложите возможность диалога игроков в режиме чата (через контролирующий сервер).
Определите тип протокола, который будет использоваться для взаимодействия клиентов и сервера (TCP или UDP).
Описание слайда:
Часть 1. Разработка алгоритма игровой ситуации и протокола взаимодействия клиентской и серверной частей Опишите правила игры и алгоритм проведения игровой ситуации «крестики-нолики» (3x3). Разработайте протокол взаимодействия клиентской и серверной частей приложения при: создании новой игры, подключении игроков к ранее созданной игре, проведении игровой ситуации и завершении её. Заложите возможность диалога игроков в режиме чата (через контролирующий сервер). Определите тип протокола, который будет использоваться для взаимодействия клиентов и сервера (TCP или UDP).

Слайд 4





Клиентское ПО
Описание слайда:
Клиентское ПО

Слайд 5





Серверное ПО
Описание слайда:
Серверное ПО

Слайд 6





Часть 1. Разработка алгоритма игровой ситуации и протокола взаимодействия клиентской и серверной частей
С использованием библиотек MyTerm и BigChars, разработайте набор функций:
printBoard (struct board), выводящую на экран рабочее поле игры. Каждая ячейка поля представляется «большим» символом, само поле обведено в рамку. Рисунки символов «крестик» и «нолик» хранятся в одном файле (два больших символа, один - крестик, другой - нолик).
setBoardPos (struct board, int, int, enum tPosSign), устанавливающую в указанную позицию поля крестик или нолик
getBoardPos (struct board, int, int, enum tPosSign *), возвращает значение указанной позиции поля игры (крестик или нолик).
editBoard (struct board *, int *, int *), реализующую редактирование поля (в свободное место устанавливается крестик (F5) или нолик (F6), на занятое место установить ничего нельзя) и возвращающую позицию установленного символа.
Описание слайда:
Часть 1. Разработка алгоритма игровой ситуации и протокола взаимодействия клиентской и серверной частей С использованием библиотек MyTerm и BigChars, разработайте набор функций: printBoard (struct board), выводящую на экран рабочее поле игры. Каждая ячейка поля представляется «большим» символом, само поле обведено в рамку. Рисунки символов «крестик» и «нолик» хранятся в одном файле (два больших символа, один - крестик, другой - нолик). setBoardPos (struct board, int, int, enum tPosSign), устанавливающую в указанную позицию поля крестик или нолик getBoardPos (struct board, int, int, enum tPosSign *), возвращает значение указанной позиции поля игры (крестик или нолик). editBoard (struct board *, int *, int *), реализующую редактирование поля (в свободное место устанавливается крестик (F5) или нолик (F6), на занятое место установить ничего нельзя) и возвращающую позицию установленного символа.

Слайд 7





«Большой символ»
Описание слайда:
«Большой символ»

Слайд 8





«Большой символ»
terminfo – база данных, описывающая характеристики терминалов
	man terminfo 
infocmp – вывод информации о характеристиках терминалов
	infocmp -1L xterm
Описание слайда:
«Большой символ» terminfo – база данных, описывающая характеристики терминалов man terminfo infocmp – вывод информации о характеристиках терминалов infocmp -1L xterm

Слайд 9





«Большой символ»
Описание слайда:
«Большой символ»

Слайд 10





«Большой символ»
Описание слайда:
«Большой символ»

Слайд 11





«Большой символ»
Описание слайда:
«Большой символ»

Слайд 12





Игровое поле
Описание слайда:
Игровое поле

Слайд 13





Обработка нажатия клавиш
key_f5=\E[15~
key_f6=\E[17~
Режимы работы терминала:
Канонический - информация передаётся в ЭВМ только в виде законченных строк (после нажатия «ENTER»); 
Неканонический -  вводимая информация сразу поступает в ЭВМ
Описание слайда:
Обработка нажатия клавиш key_f5=\E[15~ key_f6=\E[17~ Режимы работы терминала: Канонический - информация передаётся в ЭВМ только в виде законченных строк (после нажатия «ENTER»); Неканонический - вводимая информация сразу поступает в ЭВМ

Слайд 14





Режимы работы терминала
#include <termios.h>
#include <unistd.h>
 
int tcgetattr (int fd, struct termios *tsaved);
int tcsetattr (int fd, int actions, const struct 
                                   termios *tnew);


struct termios{
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_lflag; // поведение терминала при обработке                 
                  // и передаче информации в ЭВМ
tcflag_t c_cflag;
tcflag_t c_cc[NCCS]; // перечень символов, которые 
			   // будут интерпретироваться как 
                     // управляющие
};
Описание слайда:
Режимы работы терминала #include <termios.h> #include <unistd.h>   int tcgetattr (int fd, struct termios *tsaved); int tcsetattr (int fd, int actions, const struct termios *tnew); struct termios{ tcflag_t c_iflag; tcflag_t c_oflag; tcflag_t c_lflag; // поведение терминала при обработке // и передаче информации в ЭВМ tcflag_t c_cflag; tcflag_t c_cc[NCCS]; // перечень символов, которые // будут интерпретироваться как // управляющие };

Слайд 15





Режимы работы терминала
struct termios tty, tty_new;
tcgetattr(1, &tty);

tty_new = tty;
tty_new.c_lflag &= ~(ICANON | ECHO);
tty_new.c_lflag |= ISIG; // разрешена обработка клавиш 
                         // прерывания и аварийного 
                         // завершения
tty_new.c_cc[VTIME] = 0; // read завершится только после
tty_new.c_cc[VMIN] = 1;  // того, как будут считаны VMIN 
                         // символов
tcsetattr(1, TCSADRAIN, &tty_new);

...

tcsetattr(1, TCSADRAIN, &tty);
Описание слайда:
Режимы работы терминала struct termios tty, tty_new; tcgetattr(1, &tty); tty_new = tty; tty_new.c_lflag &= ~(ICANON | ECHO); tty_new.c_lflag |= ISIG; // разрешена обработка клавиш // прерывания и аварийного // завершения tty_new.c_cc[VTIME] = 0; // read завершится только после tty_new.c_cc[VMIN] = 1; // того, как будут считаны VMIN // символов tcsetattr(1, TCSADRAIN, &tty_new); ... tcsetattr(1, TCSADRAIN, &tty);

Слайд 16


Курсовая работа. Разработка сетевого программного обеспечения, слайд №16
Описание слайда:

Слайд 17


Курсовая работа. Разработка сетевого программного обеспечения, слайд №17
Описание слайда:

Слайд 18


Курсовая работа. Разработка сетевого программного обеспечения, слайд №18
Описание слайда:

Слайд 19





Часть 1. Разработка алгоритма игровой ситуации и протокола взаимодействия клиентской и серверной частей
Реализуйте простейшую программу-сервер.
При запуске анализируются параметры командной строки, в которых указывается
количество одновременно поддерживаемых игр (опция --count-games | -g). По умолчанию возможно проведение только одной игры.
номер порта, который будет использоваться сервером для ожидания начальных запросов от клиентов. По умолчанию используется порт 7777.
Сервер открывает сокет, «привязывает» его к соответствующему интерфейсу и порту и «слушает» его.
При подключении клиента передаем ему строку «HELLO <IP>», в которой вместо IP указывается адрес только что подключившегося клиента.
В течение 60 секунд ожидается подключение ещё одного клиента. Если клиент подключился, то ему отправляется строка «HELLO. YOU ARE NUMBER TWO. THE FIRST CLIENT IS <IP>», в которой вместо IP отправляется адрес первого подключившегося клиента. Первому клиенту в этом случае отправляется строка вида «CLIENT NUMBER TWO IS <IP>», в которой вместо IP указывается адрес второго подключившегося клиента.
Порт закрывается и сервер завершает свою работу.
Описание слайда:
Часть 1. Разработка алгоритма игровой ситуации и протокола взаимодействия клиентской и серверной частей Реализуйте простейшую программу-сервер. При запуске анализируются параметры командной строки, в которых указывается количество одновременно поддерживаемых игр (опция --count-games | -g). По умолчанию возможно проведение только одной игры. номер порта, который будет использоваться сервером для ожидания начальных запросов от клиентов. По умолчанию используется порт 7777. Сервер открывает сокет, «привязывает» его к соответствующему интерфейсу и порту и «слушает» его. При подключении клиента передаем ему строку «HELLO <IP>», в которой вместо IP указывается адрес только что подключившегося клиента. В течение 60 секунд ожидается подключение ещё одного клиента. Если клиент подключился, то ему отправляется строка «HELLO. YOU ARE NUMBER TWO. THE FIRST CLIENT IS <IP>», в которой вместо IP отправляется адрес первого подключившегося клиента. Первому клиенту в этом случае отправляется строка вида «CLIENT NUMBER TWO IS <IP>», в которой вместо IP указывается адрес второго подключившегося клиента. Порт закрывается и сервер завершает свою работу.

Слайд 20





Часть 1. Разработка алгоритма игровой ситуации и протокола взаимодействия клиентской и серверной частей
Клиент
При запуске анализирует параметры командной строки, в которых указывается:
адрес игрового сервера (опция --game-server | -s). По умолчанию используется адрес 127.0.0.1;
порт, на котором сервер ожидает сообщений от клиентов (опция --game-server-port | -p). По умолчанию используется порт 7777.
Клиент подключается к указанному серверу и порту.
Ожидает от сервера строку (в течение 60 секунд).
Если сервер присылает строку вида «HELLO <IP>», то ожидается (в течение 60 секунд) ещё одна строка вида «CLIENT NUMBER TWO IS <IP>».
На экран выводится адрес второго игрока.
Сокет закрывается и работа клиента завершается.
Описание слайда:
Часть 1. Разработка алгоритма игровой ситуации и протокола взаимодействия клиентской и серверной частей Клиент При запуске анализирует параметры командной строки, в которых указывается: адрес игрового сервера (опция --game-server | -s). По умолчанию используется адрес 127.0.0.1; порт, на котором сервер ожидает сообщений от клиентов (опция --game-server-port | -p). По умолчанию используется порт 7777. Клиент подключается к указанному серверу и порту. Ожидает от сервера строку (в течение 60 секунд). Если сервер присылает строку вида «HELLO <IP>», то ожидается (в течение 60 секунд) ещё одна строка вида «CLIENT NUMBER TWO IS <IP>». На экран выводится адрес второго игрока. Сокет закрывается и работа клиента завершается.

Слайд 21





Распределенная система
Описание слайда:
Распределенная система

Слайд 22





Распределенная система (РС)
Описание слайда:
Распределенная система (РС)

Слайд 23





Модель OSI
Описание слайда:
Модель OSI

Слайд 24





Модель OSI — Стек TCP/IP
Описание слайда:
Модель OSI — Стек TCP/IP

Слайд 25





Сокеты
Описание слайда:
Сокеты

Слайд 26





Сокеты
#include <sys/socket.h>
#include <sys/types.h>
int connect(int sd, struct sockaddr *server, 
            int addr_len);
Описание слайда:
Сокеты #include <sys/socket.h> #include <sys/types.h> int connect(int sd, struct sockaddr *server, int addr_len);

Слайд 27





Сокеты
Описание слайда:
Сокеты

Слайд 28





Сокеты
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);

int sd, bytes_read;
sd = socket (PF_INET, SOCK_STREAM, 0);
bytes_read = read(sd, buffer, MAXBUF); 
if(bytes_read < 0)
{
	/* сообщить об ошибках; завершить работу */
}

#include <unistd.h>
int close(int fd);
Описание слайда:
Сокеты #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); int sd, bytes_read; sd = socket (PF_INET, SOCK_STREAM, 0); bytes_read = read(sd, buffer, MAXBUF); if(bytes_read < 0) { /* сообщить об ошибках; завершить работу */ } #include <unistd.h> int close(int fd);

Слайд 29





Сокеты
Описание слайда:
Сокеты

Слайд 30





Сокеты
#include <sys/types.h>
#include <sys/socket.h>

int bind(int sockfd, const struct sockaddr *addr,
         socklen_t addrlen);
int listen(int socket, int backlog) ;
int accept(int socket, struct sockaddr *address, 
           socklen_t *address_len);
Описание слайда:
Сокеты #include <sys/types.h> #include <sys/socket.h> int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); int listen(int socket, int backlog) ; int accept(int socket, struct sockaddr *address, socklen_t *address_len);

Слайд 31





Форматы хранения данных
21425963510 = 0СС557B316

прямой (от младшего к старшему, little-endian) 
	
обратный (от старшего к младшему, big-endian)
Описание слайда:
Форматы хранения данных 21425963510 = 0СС557B316 прямой (от младшего к старшему, little-endian) обратный (от старшего к младшему, big-endian)

Слайд 32





Форматы хранения данных
Порядок байтов, задаваемый компьютером или сервером, называется серверным

Порядок байтов, определяемый сетевыми протоколами, называется сетевым и всегда является обратным
Описание слайда:
Форматы хранения данных Порядок байтов, задаваемый компьютером или сервером, называется серверным Порядок байтов, определяемый сетевыми протоколами, называется сетевым и всегда является обратным

Слайд 33





Функции преобразования порядка байтов
dest.sin_family /* серверный порядок байтов */
dest.sin_port   /* сетевой порядок байтов */
dest.sin_addr   /* сетевой порядок байтов */

uint32_t htonl(uint32_t hostlong);  #include <arpa/inet.h>
uint16_t htons(uint16_t hostshort); 
uint32_t ntohl(uint32_t netlong); 
uint16_t ntohs(uint16_t netshort);
Описание слайда:
Функции преобразования порядка байтов dest.sin_family /* серверный порядок байтов */ dest.sin_port /* сетевой порядок байтов */ dest.sin_addr /* сетевой порядок байтов */ uint32_t htonl(uint32_t hostlong); #include <arpa/inet.h> uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort);

Слайд 34





Функции преобразования порядка байтов
dest.sin_family /* серверный порядок байтов */
dest.sin_port   /* сетевой порядок байтов */
dest.sin_addr   /* сетевой порядок байтов */

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int inet_aton(const char *cp, struct in_addr *inp);
char *inet_ntoa(struct in_addr in); 

127.0.0.1
Описание слайда:
Функции преобразования порядка байтов dest.sin_family /* серверный порядок байтов */ dest.sin_port /* сетевой порядок байтов */ dest.sin_addr /* сетевой порядок байтов */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int inet_aton(const char *cp, struct in_addr *inp); char *inet_ntoa(struct in_addr in); 127.0.0.1

Слайд 35





Пример клиента
Описание слайда:
Пример клиента

Слайд 36





Пример сервера
Описание слайда:
Пример сервера

Слайд 37





Пример клиента и сервера
Описание слайда:
Пример клиента и сервера

Слайд 38





Справочные материалы
Уолтон Ш. Создание сетевых приложений в среде Linux. : Пер. с англ.— М.: Вильямс, 2001. — 464 с.
Иванов Н.Н. Программирование в Linux. Самоучитель. – СПб.: БХВ-Петербург, 2007. – 416 с.
man
Описание слайда:
Справочные материалы Уолтон Ш. Создание сетевых приложений в среде Linux. : Пер. с англ.— М.: Вильямс, 2001. — 464 с. Иванов Н.Н. Программирование в Linux. Самоучитель. – СПб.: БХВ-Петербург, 2007. – 416 с. man



Похожие презентации
Mypresentation.ru
Загрузить презентацию