На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Модераторы: maxim84_, juice
  
> AppServer на C#, Любая подходящая библиотека
    Здравствуйте!

    Необходимо найти достаточно шуструю библиотеку на соккетах для шарпа, но ничего под руку не попадается...

    Подробнее: есть сервер, на нём планирую поднять серверное приложение (часть игры), которое будет обслуживать около сотни клиентов.

    Общение между игроками и сервером достаточно простое:

    - Протокол TCP, либо свой, но аналогичный (нужна гарантия доставки пакетов).
    - Веб-сервер не нужен. (Слишком много трафика уходит в никуда)
    - Нет требований к шифрованию трафика.
    - Нет требований к передачи информации в режиме реального времени. (Клиенты не "спамят" трафиком, они шлют небольшие команды, время от времени)
    - Полученные сообщения для обработки можно выстраивать в произвольную очередь. (Порядок не важен)
    - Клиенты не общаются друг с другом, всё идёт только на сервер, от сервера к клиентам.
    - Не обязательно наличие сериализации/десериализации объектов, достаточно передачи примитивов (byte[], string, uint, ulong, double, ...)
    - Сервер должен держать соккеты всех "живых клиентов", желательно, чтобы он инкапсулировал свою многопоточную реализацию. (Если на клиента не выделяется отдельного потока - не страшно, главное чтобы запросы пары сотен активных клиентов, хотя бы в теории, было возможно обработать и ответить)

    На шарпе я с подобным не сталкивался. Вручную всё это писать не хочу (слишком долго), да и не уверен, что смогу сделать всё грамотно (не факт что вообще смогу). В основном работал с JBOSS, немного с Tomcat, но, это всё java, да и заточено, по большей части, на HTTP.

    В поисках истины наткнулся на хорошие отзывы о FlexibleGameServer, описания не плохое, вроде, делает то что мне надо, и даже больше, скачал пробную версию и пример чата. Но, не судьба, не запустился)
    user posted image

    Тема для меня достаточно сложная, подскажите, где можно достать подобную библиотечку с парой примеров её использования?
    Сообщение отредактировано: VisualProg -
    CyberLock | BloodBath-LAN
    Немного творчества - альбом ArtMetal [Metal, Instrumental, Orchestral]
      Никогда не юзал подобное на C#. Копать в сторону IOCP, если под Win.

      Из того, что видно, так это: AsyncIO (есть пример), Leak (но как часть всего проекта, в nuget Leak.IO).
      А вот на C++ дополна всего интересного: libevent, libev, libuv, boost::asio (asio больше всего нравится, но C++/CLI проект вряд ли нормально получится сделать).

      А если сильно просто надо, можно поглядеть видимо на: NetworkComms.Net
      Сообщение отредактировано: Axis -
      CPU not found, press any key for software emulation.
        В общем, начал разбирать TcpListener и TcpClient, естно, там хрен знает сколько надо делать самому, но, походу это самый простой для меня вариант, + можно мудрить с каллбеками. До этого, думал что в шарпе сокеты на уровне виндового Api, но, нет, вроде в разы проще.
        CyberLock | BloodBath-LAN
        Немного творчества - альбом ArtMetal [Metal, Instrumental, Orchestral]
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script Execution time: 0,0747 ]   [ 18 queries used ]   [ Generated: 19.07.18, 13:47 GMT ]