Показать сообщение отдельно
Старый 12.12.2012, 17:33   #1
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Пример сервера на PureBasic

Пока допиливаю свои ммо-поделки, решил поделиться небольшими наработками по серверу на пурике.

В общем, сервер, работает в трех потоках, использует БД SQLite. В аттаче архив с иходниками и exe сервера, а также тестового клиента.

Основной поток (MainLoop) обрабатывает принятые пакеты, формирует пакеты на отправку через два списка. Второй поток добавляет принятые сервером данные в первый список, а третий поток считывает данные из второго списка и отправляет нужным клиентам.
Код сдобрен комментами, так что проблем возникнуть не должно.

Проверить работу можно через тест-клиент, который написан на блитце. При старте клиент сразу сам подключается к серверу на порт 9105 (выдаст MAV, если сервер не запущен или недоступен). Он работает в "ручном" режиме - то есть нужно набирать пакет с клавиатуры. Формат пакета: "[Команда]#[Данные]#...#[Данные]#", Где # - разделитель Chr(13) - добавляется по клавише F1 клиента. Enter - отправить пакет.

Команды:
Login#Name#Pass#version#
Register#Name#Pass#version#e-mail#
Move#X#Y#

Каждую команду обрабатывает отдельная процедура, то есть легко добавить на сервер новые команды.

В общем, может кому-то пригодится Также просьба похаять код, подсказать что можно улучшить/переделать - например формат и метод обработки пакетов.

Вложения
Тип файла: zip exampleserver.zip (947.4 Кб, 1096 просмотров)
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо DStalk за это полезное сообщение:
DarkInside (13.12.2012), Devilox (22.10.2013), is.SarCasm (13.12.2012), Nex (27.10.2013), St_AnGer (13.12.2012), und3rgr0und (27.01.2014)