powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Создание множественного обмена данными по сети
24 сообщений из 24, страница 1 из 1
Создание множественного обмена данными по сети
    #38100936
Сложно написать название темы, но суть вот в чем. Нужно сделать возможность, чтобы множество программ обменивались потоком данных по сети. При этом нужно сделать так, чтобы они подключались к серверу, через этот сервер находили друг друга и передавали бы данные. Как сделать используя сервер понятно - на сервер отправить, сервер передаст по адресу назначения, но тогда сервер может оказаться перегруженным. Можно ли сделать так, чтобы сервер передал, например, адрес клиенту того, к кому этот клиент хочет подключиться и тот передавал бы по назначению напрямую? Если бы компьютеры были в одной сети, проблем бы не было, но можно ли это сделать так, чтобы клиенты обменивались между собой через шлюз не настраивая NAT (ну максимум, вписать в межсетевой экран номер порта).
Писать буду на C#, используя Listener, TcpClient, Socket.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101007
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Вахтин,

Почтай о SIP (Session Initiation Protocol) может подскажет решение. Начни например отсюда
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101041
По видимому мне это то, что нужно, вот только надо бы разобраться как это сделать
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101043
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ВахтинПри этом нужно сделать так, чтобы они подключались к серверу, через этот сервер находили друг друга и передавали бы данные. Как сделать используя сервер понятно - на сервер отправить, сервер передаст по адресу назначения, но тогда сервер может оказаться перегруженным.Простое копирование данных из сокета в сокет - операция не ресурсоёмкая.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101068
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovАлексей ВахтинПри этом нужно сделать так, чтобы они подключались к серверу, через этот сервер находили друг друга и передавали бы данные. Как сделать используя сервер понятно - на сервер отправить, сервер передаст по адресу назначения, но тогда сервер может оказаться перегруженным.Простое копирование данных из сокета в сокет - операция не ресурсоёмкая. Ага... Совсем "не ресурсоемкая"... И таких понятий как DoS (Denial of Service) и DDoS (Distributed Denial of Service) в природе не существует...
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101104
Если бы это были короткие сообщения, то может и ничего, а то планируется передавать потоки данных, и не желательна их задержка. Нашел вот такую вещь: http://www.independentsoft.com/sip/index.html то что пробная версия, это еще ладно, но не понятно, почему в примерах указано только как клиентов создавать, а сервер какой-то sipdomain.com
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101134
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv Ага... Совсем "не ресурсоемкая"...У вас есть другие оценки или просто прицепиться?И таких понятий как DoS (Denial of Service) и DDoS (Distributed Denial of Service) в природе не существует...Ну и каким это боком к штатной работе сервиса?
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101138
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ВахтинЕсли бы это были короткие сообщения, то может и ничего, а то планируется передавать потоки данных, и не желательна их задержка."Прям щас" я реализовал некий прокси-сервлет, который читает запрос, передаёт его серверу приложений и возвращает ответ клиенту. Перекачка данных в чистом виде. Не ресурсоёмкая задача. Без всякого Java NIO.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101148
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovsphinx_mv Ага... Совсем "не ресурсоемкая"...У вас есть другие оценки или просто прицепиться?Не порите чушь - никто к Вам цепляться не будет...
Вам что-нибудь говорят ограничения максимального количества устанавливаемых одновременных сетевых соединений?
А про лимиты скорости подключения сетевых интерфейсов (включая технические)?
Про ограниченую производительность отдельного процессора/компьютера/сервера даже не буду заикаться...
Basil A. SidorovИ таких понятий как DoS (Denial of Service) и DDoS (Distributed Denial of Service) в природе не существует...Ну и каким это боком к штатной работе сервиса?Ну, и в каком же месте заканчивается "штатная" работа и начинается "аут оф сервис" - у Вас самого внятный критерий есть?
Хотя, откуда ему взяться - у Вас же "задача не ресурсоемкая", и любой сервер можно "нагружать до бесконечности"... Ага...
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101152
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvНе порите чушь - никто к Вам цепляться не будет...Без комментариев.Вам что-нибудь говорят ограничения максимального количества устанавливаемых одновременных сетевых соединений?
А про лимиты скорости подключения сетевых интерфейсов (включая технические)?
Про ограниченую производительность отдельного процессора/компьютера/сервера даже не буду заикаться...Если до вас очень туго доходит, то я поясню: было предложено использовать простейший вариант.
Я знаю , что это вариант не ресурсоёмок, я знаю как оптимизировать такую передачу и как решать типичные проблемы типа "разноскоростные клиенты" или "вот эти данные нужно раздать нескольким клиентам".
Я не знаю це-шарп, но предложенный вариант от языка не зависит.

P.S. Прежде чем решать проблемы типичного популярного ресурса, нужно до этого популярного ресурса дорасти .
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101160
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Вахтин,

а можно поинтересоваться, почему Вас не устраивает классическая схема "клиент-сервер".
Вроде всё тоже, только как-то не такой у Вас подход. Задачу - то Вы не обрисовали.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101162
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovsphinx_mvНе порите чушь - никто к Вам цепляться не будет...Без комментариев.Вам что-нибудь говорят ограничения максимального количества устанавливаемых одновременных сетевых соединений?
А про лимиты скорости подключения сетевых интерфейсов (включая технические)?
Про ограниченую производительность отдельного процессора/компьютера/сервера даже не буду заикаться...Если до вас очень туго доходит, то я поясню: было предложено использовать простейший вариант.Так ЭТО у Вас "простейший вариант"?!
Ну, а то, что Ваш "простейший варант" будет работать только в "простейших условиях" - это Вам еще предстоит самостоятельно дорасти... Например, когда появится пара десятков-пара сотен-хотя бы тысяча одновременных активных подключений к серверу...
Basil A. SidorovЯ знаю , что это вариант не ресурсоёмок, я знаю как оптимизировать такую передачу и как решать типичные проблемы типа "разноскоростные клиенты" или "вот эти данные нужно раздать нескольким клиентам".
Человек, который говорит, что знает все, на самом деле не знает ничего. (с) - очень точно Вас характеризует.
Вы НЕ знаете, СКОЛЬКО (и КАКИХ) ресурсов использует Ваше решение - соответственно, оптимизировать Вам НЕЧЕГО.
И просто ЗНАТЬ, как решаются типичные проблемы, и УМЕТЬ решать типичные проблемы - это весьма разные вещи...
Basil A. SidorovЯ не знаю це-шарп, но предложенный вариант от языка не зависит.
А это Вы к чему?
Basil A. SidorovP.S. Прежде чем решать проблемы типичного популярного ресурса, нужно до этого популярного ресурса дорасти .Вас с Вашим популизмом даже до "песочницы" допускать опасно...
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101173
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Вахтин,

Если ненужно боротся с NAT то можно посмотреть на решение без сервера. Например на основе DNS-SD . См. avahi и Bonjour
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101402
Basil A. SidorovАлексей ВахтинЕсли бы это были короткие сообщения, то может и ничего, а то планируется передавать потоки данных, и не желательна их задержка."Прям щас" я реализовал некий прокси-сервлет, который читает запрос, передаёт его серверу приложений и возвращает ответ клиенту. Перекачка данных в чистом виде. Не ресурсоёмкая задача. Без всякого Java NIO.

Сколько клиентов было? Для начала у нас будет их немного, а если их количество вырастет до, скажем, тысячи?
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101411
defragmentatorАлексей Вахтин,

а можно поинтересоваться, почему Вас не устраивает классическая схема "клиент-сервер".
Вроде всё тоже, только как-то не такой у Вас подход. Задачу - то Вы не обрисовали.

Меня то устраивает, да тут те (по образованию медики), кто занимается считыванием данных с приборов и передаче их по сети для обработки, а после обработки еще куда, не хотят заниматься настройкой своих программ и NAT (некоторые компьютеры будут за шлюзами). Они хотят поставить сервер, к которому все подключается и передается с минимальными настройками. Просто еще есть человек, у которого воображение рисует тысячи таких компьютеров, не знаю, дорастет ли это число до тысячи, а вдруг... Да, и еще, может нужно будет передавать данные и нескольким клиентам.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101480
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ВахтинОни хотят поставить сервер, к которому все подключается и передается с минимальными настройками. Просто еще есть человек, у которого воображение рисует тысячи таких компьютеров, не знаю, дорастет ли это число до тысячи, а вдруг... Да, и еще, может нужно будет передавать данные и нескольким клиентам.

Ну и ... пусть ставят сервер, к нему подключаются с минимальными настройками, сливают на него данные.
Данные будут храниться. А потом по мере надобности читаться.
А так у Вас Skype какой-то получится.
И потом тысячи клиентов одновременно работать не будут.

И что Ваша программа будет делать, если компьютер получателя будет выключен:)
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101485
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если одного сервера мало будет, поставьте два заточенных каждый на свои данные.
То, что Вы предлагаете, это не технологично - отсутствие централизованного ХД.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101514
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ВахтинСколько клиентов было?В конкретном тесте - 90~120. Отдельный компьютер с гигабитной сеткой.
Расклад загрузки серверной части (две отдельные JVM) - 70-90 процентов для сервера приложений и 1-3 процента для собственно прокси.Для начала у нас будет их немного, а если их количество вырастет до, скажем, тысячи?Понимаете, в чём дело ...
Те же apache httpd и apache tomcat "искаропки" расчитаны на двести одновременных подключений. После минимальных настроек что тот, что другой без проблем выдерживают до 500 одновременных подключений. У меня не было цели определить пределы возможностей JVM/IP-стека, поэтому на бОльших значениях я не тестировал - пятьсот с разумным запасом закрывает наши потребности.
По этим и некоторым другим тестам я могу сделать вывод, что на вполне типовом железа система "центральный сервер - клиенты за NAT/proxy" упрётся, скорее всего, в пропускную способность канала (вашего) сервера.
Действительно "равноправная" сеть, конечно, не имеет такого ограничения, но если у клиента нет возможности менять настройки "ближайшего шлюза" - других реальных вариантов всё равно нет.

Резюме.
HTTP-протокол. Серверная часть на "классическом" CGI, сервлетах, модулях расширения конкретного сервера или даже на языках динамических страниц (PHP/JSP/ASP). Специализированный клиент или модуль расширения под конкретный браузер, реализующие логику вашей задачи.
Практически гарантированная "проходимость", понятные способы кэширования контента и масштабирования системы.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38101518
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ВахтинМеня то устраивает, да тут те (по образованию медики), кто занимается считыванием данных с приборов и передаче их по сети для обработки, а после обработки еще куда, не хотят заниматься настройкой своих программ и NAT (некоторые компьютеры будут за шлюзами).Есть cURL . Как исполняемый файл и как библиотека для встраивания в приложения.
Может передавать файлы/потоки "в обе стороны" по куче протоколов, с разными возможностями по авторизации и т.п.
Не без глюков, но вполне рабочий продукт.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38103249
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovАлексей ВахтинСколько клиентов было?В конкретном тесте - 90~120. Отдельный компьютер с гигабитной сеткой.
Расклад загрузки серверной части (две отдельные JVM) - 70-90 процентов для сервера приложений и 1-3 процента для собственно прокси.
90+% загрузки сервера - за такое на продакшене нужно стреляться...
И, кстати, у Вас прокси разве не на JVM работает?
Большее количество подключений еще больше нагрузит сервер - а расти уже особо некуда... На системные нужды тоже некоторое количество ресурсов требуются.
В итоге получается, что уже сотня даже "тестовых" клиентов (пусть и с неизвестным характером данных, которые Вы использовали для обмена в тестах) - и сервер в ступоре...
Хороший пример "простого копирования данных", которое "совсем не ресурсоемкая задача"...
Basil A. SidorovДля начала у нас будет их немного, а если их количество вырастет до, скажем, тысячи?Понимаете, в чём дело ...
Те же apache httpd и apache tomcat "искаропки" расчитаны на двести одновременных подключений. После минимальных настроек что тот, что другой без проблем выдерживают до 500 одновременных подключений. У меня не было цели определить пределы возможностей JVM/IP-стека, поэтому на бОльших значениях я не тестировал - пятьсот с разумным запасом закрывает наши потребности.С Вашими потребностями разобрались...
Терзают смутные сомнения (могу ошибаться) относительно взаимодействия apache httpd или apache tomcat с .NET...
Basil A. SidorovПо этим и некоторым другим тестам я могу сделать вывод, что на вполне типовом железа система "центральный сервер - клиенты за NAT/proxy" упрётся, скорее всего, в пропускную способность канала (вашего) сервера.Пока Вы продемонстрировали, что сервер приложений, а не канал узкая часть Вашей системы - слишком много ресурсов системы он отъедает под себя для выполнения сравнительно тривиальных задач.
Basil A. SidorovРезюме.
HTTP-протокол. Серверная часть на "классическом" CGI, сервлетах, модулях расширения конкретного сервера или даже на языках динамических страниц (PHP/JSP/ASP). Специализированный клиент или модуль расширения под конкретный браузер, реализующие логику вашей задачи.Для .NET - это, практически, прошлый век... С полным отказом от использования возможностей, предлагаемых средой.
Basil A. SidorovПрактически гарантированная "проходимость", понятные способы кэширования контента и масштабирования системы.Типа, в .NET ничего этого нет... Угу...
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38104020
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv90+% загрузки сервера - за такое на продакшене нужно стреляться...Я тестировал решение вполне конкретной проблемы.
Я не собираюсь обсуждать ни проблему, ни её решение, ещё раз напомню, что собственно перекачка данных (прокси-модуль) это ~2% и, ещё раз, предложу вам аккуратнее комментировать мои высказывания.И, кстати, у Вас прокси разве не на JVM работает?А перечитать?Для .NET - это, практически, прошлый век... С полным отказом от использования возможностей, предлагаемых средой.Сначала определите, какой процент клиентов положит, в лучшем случае, болт на "возможности предлагаемые средой", а потом можно будет пообсуждать и альтернативы HTTP.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38104058
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovДля .NET - это, практически, прошлый век... С полным отказом от использования возможностей, предлагаемых средой.Сначала определите, какой процент клиентов положит, в лучшем случае, болт на "возможности предлагаемые средой", а потом можно будет пообсуждать и альтернативы HTTP.Вообще-то предлагается альтернатива не столько одному из возможных транспортных протоколов (HTTP), сколько всему тому слабоструктурируемому "буллшиту", который предлагаете Вы и который тянется, в лучшем случае, с середины 1990-х гг.
Фреймворк Windows Communication Foundation, который является составной частью платформы .NET, заменяет его чуть более чем полностью.
И городить апачи, сервлеты, цги и прочий хлам при наличии весьма развитых возможностей WCF - мягко говоря, неразумно.
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38104062
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvФреймворк Windows Communication Foundation, который является составной частью платформы .NET, заменяет его чуть более чем полностью.Вы опять невнимательно читаете.
Во фразе "модуль расширения конкретного сервера" предполагалось (в том числе), что автор слабает "что-нибудь этакое под IIS на (своём любимом) це-шарпе".
...
Рейтинг: 0 / 0
Создание множественного обмена данными по сети
    #38104225
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovsphinx_mvФреймворк Windows Communication Foundation, который является составной частью платформы .NET, заменяет его чуть более чем полностью.Вы опять невнимательно читаете.
Во фразе "модуль расширения конкретного сервера" предполагалось (в том числе), что автор слабает "что-нибудь этакое под IIS на (своём любимом) це-шарпе".Это ничего, что для хостинга WCF-приложения никакой острой необходимости в IIS не наблюдается?

Модератор: Товарищ, смените тон.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Создание множественного обмена данными по сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]