Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Программирование / Programming (https://forum.zone-game.info/forumdisplay.php?f=98)
-   -   [C#] Network (https://forum.zone-game.info/showthread.php?t=42050)

Sojang 03.02.2017 22:29

[C#] Network
 
Драстье
Для шарпа есть сетевые библиотеки?По типу netty на яве

Alay 03.02.2017 23:24

Re: [C#] Network
 
Смотря подочто, если под L2 то я свою написал (асинхронный клиент\сервер)
Хотя подо что угодно можно поставить если учесть что в пакетах первые 2 байта будет размер пакета.(TCP)
для получения логов из библиотеки
Код:


Utils.Logger.InitLogger(OnLogMessage)

        private static void OnLogMessage(LogMessageType logMessageType, string message)
        {
            var biuldedMsg = new StringBuilder();

            switch (logMessageType)
            {
                case LogMessageType.Debug:
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine(message);
                    break;
                case LogMessageType.Info:
                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                    Console.WriteLine(message);
                    break;
                case LogMessageType.Warning:
                    Console.ForegroundColor = ConsoleColor.DarkYellow;
                    Console.WriteLine(message);
                    break;
                case LogMessageType.Error:
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    Console.WriteLine(message);
                    break;
                case LogMessageType.CriticalError:
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(message);
                    break;
                default:
                    throw new ArgumentOutOfRangeException(nameof(logMessageType), logMessageType, null);
            }
        }

Ну а если не хотите шифровать трафик то просто реализуйте интерфейс ICrypt
таким образом.
Код:

using System;
using Utils.Interface;

namespace Utils.Crypt
{
    public sealed class NonCryptedCrypt: ICrypt
    {
        public bool Decrypt(ref byte[] data, int offset, int size)
        {
            return true;
        }

        public byte[] Encrypt(byte[] data, int offset, int size)
        {
            return data;
        }

        public void UpdateKey(byte[] key)
        {
            throw new NotImplementedException();
        }

        public byte[] GetKey()
        {
            throw new NotImplementedException();
        }

        public void Dispose()
        {
            throw new NotImplementedException();
        }
    }
}

и добавляйте его каждому новому соединению.

PS. нетти - прошлый век (обработка 5000+ соединений в 1 поток сомнительное решение)
при наличии у .net мощнейщего ThreadPool
ИМХО

n3k0nation 04.02.2017 18:08

Re: [C#] Network
 
offtop:
Свернуть ↑Развернуть ↓

PROGRAMMATOR 04.02.2017 18:27

Re: [C#] Network
 
Sojang, DotNetty.

Alay 04.02.2017 18:46

Re: [C#] Network
 
Цитата:

Сообщение от n3k0nation (Сообщение 423484)
offtop:
Свернуть ↑Развернуть ↓

Оффтоп:
Свернуть ↑Развернуть ↓

Копипаст из одной статьи про ThreadPool в net4+:
Свернуть ↑Развернуть ↓


Небольшое отступление:
Свернуть ↑Развернуть ↓


Текущее время: 09:55. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot