Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
[C#] Network
#1
Драстье
Для шарпа есть сетевые библиотеки?По типу netty на яве
Лучше взять и изобрести завтрашний день, чем переживать о том, что вчерашний был так себе.
Ответ
#2
Смотря подочто, если под 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
ИМХО
Ответ
#3
offtop
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#4
Sojang, DotNetty.
Ответ
#5
n3k0nation Написал:
offtop
Оффтоп
Копипаст из одной статьи про ThreadPool в net4+

Небольшое отступление
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)