Моно-совместимая сетевая библиотека/библиотека сокетов

StackOverflow https://stackoverflow.com/questions/1408780

  •  05-07-2019
  •  | 
  •  

Вопрос

Существуют ли какие-либо сетевые/сокетные библиотеки, совместимые с Mono (C#)?

Предпочтительно что-то такое:

  • Многопоточный
  • Управляемый событиями
  • Возможность нескольких подключений
  • Обрабатывает клиентские и серверные части
  • Работает в средах выполнения Mono и MS .NET.
  • Очень просто
  • Бесплатно (и можно использовать в коммерческом программном обеспечении)

А еще было бы очень здорово, если бы это было:

  • Совместимость с .NET Compact Framework (Windows Mobile)
  • Совместимость с MonoTouch (iPhone)

Редактировать:

Чтобы уточнить больше, под своим комментарием «на один уровень выше TCP/IP» я имел в виду, что мне нужно что-то, что по сути является автономным сервером/клиентом.Я не хочу иметь дело с написанием кода потоков, обработкой каждого соединения и т. д.Например, мне бы хотелось, чтобы код выглядел так:

Server s = new Server(8080);
s.NewConnection += new ConnectionEventHandler(NewConnection);
s.DataRecieved += new DataEventHandler(NewData);
s.Start();

void NewConnection(object sender, EventArgs e)
{
   s.Send((Connection)sender, "Hello World!"); //(Connection)sender is the connection instance so the server knows which to send the response to
}

void NewData(object sender, EventArgs e)
{
   s.Send((Connection)sender, e.Data); //Echo back
}

Не самый чистый код, но я думаю, что он дает основную идею.

Это было полезно?

Решение

Что-то подобное сейчас существует, оформить заказ сетьComms.net.Делает все, что вам нужно, а также на 100% совместим с моно.

Отказ от ответственности:Я один из разработчиков этой коммерческой библиотеки.

Другие советы

Нет, нет ничего нестандартного, что делало бы то, что вы хотите.

TcpClient/TcpListenr уже находятся на один уровень выше класса Socket.Если вам действительно нужно что-то еще более простое, очень легко обернуть TcpListener() и предоставить ему нужные вам точки входа обработчика событий.

Вам следует проверить Удаленное взаимодействиеLite.Я использую его со своими моно-приложениями.Он был разработан для помощи в сетевом аспекте библиотеки распределенных вычислений. МПАПИ.MPAPI ставил перед собой цель обеспечить 100% совместимость с Mono.

Мне неясно, чего именно вы ожидаете от класса, который находится «на один уровень выше TcpClient и TcpListener»?

TcpClient/TcpListener — это основные строительные блоки, которые следует использовать при разработке.Я не уверен, поддерживаются ли они и в Mono, но если да, то это все, что вам нужно.

.Net CompactFramework также поддерживает их, хотя насчет Mono Touch я не уверен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top