[SetNet & Console Application] Первые шаги. SetNet.Server. Часть 1

Что же такое SetNet? SetNet (SetNet Server, sns) — Это сетевое решение, написанное на C#. С помощью данного решения Вы легко сможете создать приложения с поддержкой сети или же для сетевых игр.

Введение


В этом уроке мы научимся подключать библиотеку SetNet к консольному проекту. В введении мы поговорим о том, что нам потребуется для подключения и как будут составлены сами уроки.
Что же нам потребуется:
Visual Studio 2007-2013
SetNet библиотека
Руки из плечей

Как будут составлены уроки:


Первым делом в уроках будут разбираться все базовые классы, которые входят в состав SetNet. В первом уроке будет разбираться подключение SetNet к проекту и первый класс, который нам потребуется, SetNet.Server. Начнём.
Первые Шаги или подключение библиотеки
Итак, настало время подключить библиотеку к проекту. Для этого потребуется файл SetNet.dll, который можно скачать (ссылка выше) и создать проект Console Application. После того как файл скачан и проект создан нужно подключить библиотеку.



ПКМ (Правая кнопка мыши) на «References»-«Add reference». После этого открывается окно «Reference Manager» где мы будем добавлять библиотеку. Переходим в вкладку «Browse» и нажимаем на кнопку «Browse…».



Выбираем библиотеку SetNet.dll. На этом подключение библиотеки завершено.

Пишем сервер


Сейчас нам нужно написать основу сервера. После завершения этого урока сервер уже можно будет запустить. В этом уроке мы рассмотрим основной класс сервера, через который сервер автоматически запускается и принимает новых клиентов.
Первым делом создадим новый класс комбинацией клавиш «Ctrl+Shift+A» или же ПКМ на проекте – Add – Class и назовем его «ServerClass». После этих манипуляций у нас выйдет класс с таким содержанием:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Server
{
    public class GameServer    
    {
        
    }
}


После этого нам нужно объявить пространство имен SetNet. Для этого пишем «using SetNet;» и унаследуем GameServer от SetNet.Server. После этого класс будет выглядеть так:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SetNet;

namespace Server
{
    public class GameServer : Server    
    {
        
    }
}


Теперь нам остается только реализовать абстрактный класс. Для этого ПКМ на класс, от которого унаследуем и выбираем «Implement abstract class» и появится несколько override методов:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SetNet;

namespace Server
{
    public class GameServer : Server    
    {
        public override void NewClient(ClientInfo info)
        {
        }
    }
}


Осталось только сделать конструктор класса:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SetNet;

namespace Server
{
    public class GameServer : Server    
    {
 public GameServer()
            : base()
        {
            
        }
        public override void NewClient(ClientInfo info)
        {
        }
    }
}


Теперь разберем сам класс.


1.
using SetNet;
— Пространство имен.
2.
public override void NewClient(ClientInfo info)
– Метод, который вызывается при подключении нового клиента.

На этом первый вводный урок завершен. Если у Вас остались вопросы – со мной всегда можно связаться через e-mail rebegin@list.ru или же скайп haker954. Спасибо.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 7

    +3
    Прошу прощения за некоторый оффтоп, но
    Руки из плечей
    плохо вяжется, например, с файлом Configuration.cs вашего проекта SetNet.
      +7
      Скорее плохо вяжется со всей «статьей». Несколько удивлен тем, что уважаемое НЛО выдало за это инвайт…
      +1
      И зачем пустой конструктор, не понятно. И, хотелось бы, раз уж написали перегрузку NewClient, хотя бы пару слов, что за оно.
        +2
        Visual Studio 2007???
          0
          На серьезный пост это потянет когда раз в 5 минимум больше букв и картинок
            +1
            А можно списочек основных фич, преимуществ перед аналоговыми продуктами? Уже видел таких вот недо-фотоновских(photon server) серверов несколько штук. Я для себя открыл хорошую сетевую либу lidgren(udp, rudp), советую посмотреть(опенсорс)
              +1
              Кто-нибудь посмотрел исходники сей «библиотеки» из 7 файлов? Думаю, надо сперва сделать, что-то качественное, прежде чем начинать учить с этим работать.

              Вот это:

              read = _socket.Receive(buffer);
              ...
              EventData data = Serialization.Deserializate(buffer);
              


              упадет при первой же сегментации блока данных TCP и больше не поднимется. Нет никакой обработки Socket исключений. Не особо осмысленная статья… В воздухе витает дух BolgenOS =)

              Only users with full accounts can post comments. Log in, please.