Skip to content

Этот проэкт является экзаменом по сетевому программированию

Notifications You must be signed in to change notification settings

buturlakin-pps1901/np_exam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

np_exam

Этот проэкт является экзаменом по сетевому программированию

Игровое пирложение Клиент - поле, на поле игроки могут только перемещатся. Стартовое окно - поля для айпи сервера, имя игрока, комбо с выбором карты

Сервер поддерживает 5 игр, которые различаются битмапами на фоне. Список текущих игр.

Протоколы: Общие принципы

первые 2 байта - длина сообщения (unsigned short). 3 и 4 байт - тип сообщения (unsigned short, можно было бы обойтись и одним байтом, но так мы выравняем адреса), от его значения и от того в какую сторону оно направлено (от сервера или от клиента) зависит дальнейшее содержимое

протокол передачи списка карт. 1. От клиента серверу передается 4 байта - длина и код 1. 2. От сервера клиенту передается размер и код 2.

Структура пакета:
ushort count
array mapInfo[];
struct mapInfo{
	string name;
	unsigned short width,height;
	byte[32] hashCode;

} хешкод используется для проверки того, является ли локальная копия карты валидной.

протокол передачи карты. 1. От клиента серверу передается код 3 2. От сервера клиенту передается код 4 затем uint размер файла и byte[] с содержимым файла карты.

все что написано выше - фигня полная. Для реализации протоколоа я использую базовый класс netMessage и производные от него. Каждый дочерний класс являет собой данные сообщения. В базовом реализованы функции readMessage и sendMessage, принимающие нетворкстрим в который пишется или из которого читается. Все это чудо основано на бинарной сериализации, вынесено в отдельный dll модуль, подключеный к обеим проектам (клиента и сервера). Не знаю как это скажется на скорости, но должно очень положительно повлиять на скорость разработки (пишу эти строки в четверг в пол двенадцатого 8) )

About

Этот проэкт является экзаменом по сетевому программированию

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages