Re[3]: Cетевой сервис
От: Pzz Россия https://github.com/alexpevzner
Дата: 29.11.17 17:41
Оценка: 4 (1) +2
Здравствуйте, Iso12, Вы писали:

Pzz>>Я бы выбрал Go

I>Почему?

Ну, поскольку данных не очень много, то производительность значения не имеет (Go не то, чтобы совсем уж тормоз, но раза в два Си, а значит, C++ и Русту, проигрывает).

С другой стороны, ты просил кроссплатформенность. С ней у Go очень хорошо. Программу типа сетевого сервиса можно собрать из одних и тех же исходников, и если не надо чего-то очень уж экзотического, то никакого ветвления (ни на этапе компиляции, не во время исполнения) в зависимости от операционной системы вообще не потребуется. Кроме того, стандартная библиотека Go очень практична, и для програм такого плана в ней есть все, что нужно.

Кроме того, у Go очень хорошо налажена кросс-компиляция. Не является проблемой сидя на одной из перечисленных платформ собирать программу под все остальные. Что довольно удобно, попробуй-ка сделать автоматизированный билд на N платформ, если для его реализации потребуется скоординированная работа N компьютеров, каждый под своей операционной системой.

И наконец, если писать на чистом Go (без использования сторонних сишных библиотек), на выходе получается статически собранный исполняемый файл, у которого вообще нет внешних зависимостей. Распостранять такие програмки — одно удовольствие.
Re: Cетевой сервис
От: Географ Россия нет
Дата: 29.11.17 16:06
Оценка: +1 :))
Здравствуйте, Iso12, Вы писали:

I>Добрый день,


I>Нужно реализовать сетевой сервис, данные пакуются в TCP и UDP пакеты и пересылаются по сети. Данных не много.

I>В общем обыкновенная реализация сервера и клиента, но нужно реализовать кросплатформенно (Windows Linux, macOS).
I>Смотрю в сторону GO, Rust и С++.

I>Кто что может посоветовать?


Java сработает один раз для всех. Пересобирать не придётся.
Re: Cетевой сервис
От: Pzz Россия https://github.com/alexpevzner
Дата: 29.11.17 15:21
Оценка: +2
Здравствуйте, Iso12, Вы писали:

I>Кто что может посоветовать?


Я бы выбрал Go
Re: Cетевой сервис
От: kov_serg Россия  
Дата: 29.11.17 16:11
Оценка: :))
Здравствуйте, Iso12, Вы писали:

I>Добрый день,


I>Нужно реализовать сетевой сервис, данные пакуются в TCP и UDP пакеты и пересылаются по сети. Данных не много.

I>В общем обыкновенная реализация сервера и клиента, но нужно реализовать кросплатформенно (Windows Linux, macOS).
I>Смотрю в сторону GO, Rust и С++.

I>Кто что может посоветовать?


Perl и PHP
Re[15]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.12.17 12:28
Оценка: +1
Здравствуйте, Iso12, Вы писали:

I>>Здесь единственная внятная альтернатива, это построение своего протокола на базе UDP. И при этом придется изобрести половину или больше того, что уже есть в http


I>Так и задумывается : поиск по UDP, потом после ответа, TCP-содинение с обменом синхронныи и асинхронными пакетами.


Ну вот часть HTTP уже изобретена

Посмотри http://zeromq.org/ Там уже много чего готового для тебя.

С UDP тебя ждет куча нюансов, скажем, если узлы будут находиться в разных сетях.

I>>А при чем здесь html странички ? http как раз и позволяет получать те самые пакеты асинхронно, только называются они запросами-ответами. Кто мешает положить в http бинарник ?


I>Так зачем обёртывать в HTTP если можно передать напрямую?


Вот это "обертывание" почти ничего не стоит, если только ты не биржу пишешь и тебе надо выжимать мили- и даже микросекнды задержки.

Зато готовая инфраструктура искаропки — всё что надо, работает. Можно сразу начинать прикладной код писать.
Cетевой сервис
От: Iso12  
Дата: 29.11.17 14:09
Оценка:
Добрый день,

Нужно реализовать сетевой сервис, данные пакуются в TCP и UDP пакеты и пересылаются по сети. Данных не много.
В общем обыкновенная реализация сервера и клиента, но нужно реализовать кросплатформенно (Windows Linux, macOS).
Смотрю в сторону GO, Rust и С++.

Кто что может посоветовать?
Re: Cетевой сервис
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.11.17 16:19
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Добрый день,


I>Нужно реализовать сетевой сервис, данные пакуются в TCP и UDP пакеты и пересылаются по сети. Данных не много.

I>В общем обыкновенная реализация сервера и клиента, но нужно реализовать кросплатформенно (Windows Linux, macOS).
I>Смотрю в сторону GO, Rust и С++.

I>Кто что может посоветовать?

Могу посоветовать не заниматься этим, а воспользоваться готовым сервером. В вашем случае поможет netcat. Приложение должно просто писать данные в нужном формате в стандартный вывод.
Re[2]: Cетевой сервис
От: Iso12  
Дата: 29.11.17 16:33
Оценка:
Здравствуйте, Pzz, Вы писали:


Pzz>Я бы выбрал Go

Почему?
Re[2]: Cетевой сервис
От: Iso12  
Дата: 29.11.17 16:37
Оценка:
Здравствуйте, Географ, Вы писали:

Г>Java сработает один раз для всех. Пересобирать не придётся.


В будущем планируется использовать и на Embedded Linux. Поэтому не хотелось бы везде таскать с собой JVM.
Re[2]: Cетевой сервис
От: Iso12  
Дата: 29.11.17 16:49
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>Могу посоветовать не заниматься этим, а воспользоваться готовым сервером. В вашем случае поможет netcat. Приложение должно просто писать данные в нужном формате в стандартный вывод.


Программа должна иметь свою не простую логику со множеством соединений и запускаться как сервис.
Поэтому я думаю netcat в моём случае не подойдёт.
Re[3]: Cетевой сервис
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.11.17 17:10
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:



G>>Могу посоветовать не заниматься этим, а воспользоваться готовым сервером. В вашем случае поможет netcat. Приложение должно просто писать данные в нужном формате в стандартный вывод.


I>Программа должна иметь свою не простую логику со множеством соединений и запускаться как сервис.

В итоге программа что-то шлет в сокет? Или еще принимать что-то должна и както реагировать?
Если реагировать не надо, то netcat подойдет.
Re: Cетевой сервис
От: scf  
Дата: 29.11.17 17:14
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Кто что может посоветовать?


Какие языки и API знаете?
Re[2]: Cетевой сервис
От: Iso12  
Дата: 29.11.17 22:38
Оценка:
Здравствуйте, scf, Вы писали:

scf>Какие языки и API знаете?

Писал на C++. Но я думаю выучить и опробовать новый язык будет не проблема.
Re[4]: Cетевой сервис
От: Iso12  
Дата: 29.11.17 23:17
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>В итоге программа что-то шлет в сокет? Или еще принимать что-то должна и както реагировать?

G>Если реагировать не надо, то netcat подойдет.
Да, должна принимать, реагировать и отправлять дальше другим клиентам.
Re[5]: Cетевой сервис
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.17 00:48
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:



G>>В итоге программа что-то шлет в сокет? Или еще принимать что-то должна и както реагировать?

G>>Если реагировать не надо, то netcat подойдет.
I>Да, должна принимать, реагировать и отправлять дальше другим клиентам.

http не проще будет?
Re[6]: Cетевой сервис
От: Iso12  
Дата: 30.11.17 07:38
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>http не проще будет?

Думаю нет, сервисы должны работать с клиентами и обмениваться между собой данными.
Re[7]: Cетевой сервис
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.11.17 12:56
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


G>>http не проще будет?

I>Думаю нет, сервисы должны работать с клиентами и обмениваться между собой данными.
Под эти задачи http прекрасно подходит.
Re[7]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.12.17 07:38
Оценка:
Здравствуйте, Iso12, Вы писали:

G>>http не проще будет?

I>Думаю нет, сервисы должны работать с клиентами и обмениваться между собой данными.

А какие еще требования и ограничения есть ? Нагрузка, скорость передачи, количество клиентов, задержки всякие и тд и тд. И что значит "обмениваться между собой" Если начать с UDP большой шанс, что изобретешь TCP. А начав с TCP можно легко изорбрести HTTP
Re[8]: Cетевой сервис
От: Iso12  
Дата: 14.12.17 09:44
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>А какие еще требования и ограничения есть ? Нагрузка, скорость передачи, количество клиентов, задержки всякие и тд и тд. И что значит "обмениваться между собой" Если начать с UDP большой шанс, что изобретешь TCP. А начав с TCP можно легко изорбрести HTTP


К сервисам подключаются локально клиентские программы. Сервисы обмениваются между сабой информацией о подключенных клиентских программах и их состояниях. Клиентслие программы могут иметь различные состояния.
Нужно построить динамическую сервисную сеть, это означает сервисная сеть должна реагировать на отключение одного из сервисов и подключение нового сервиса, также и на отключение и подключение клиентов. Оснавная сложность в проекте это маштабируемость и реорганизация сервисной сети. Данных будет не много, время передачи данных не критично.
Я думаю что HTTP к это задачи не подходит и будет overhead-ом.
Re[9]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.12.17 12:50
Оценка:
Здравствуйте, Iso12, Вы писали:

I>>А какие еще требования и ограничения есть ? Нагрузка, скорость передачи, количество клиентов, задержки всякие и тд и тд. И что значит "обмениваться между собой" Если начать с UDP большой шанс, что изобретешь TCP. А начав с TCP можно легко изорбрести HTTP


I>К сервисам подключаются локально клиентские программы. Сервисы обмениваются между сабой информацией о подключенных клиентских программах и их состояниях. Клиентслие программы могут иметь различные состояния.

I>Нужно построить динамическую сервисную сеть, это означает сервисная сеть должна реагировать на отключение одного из сервисов и подключение нового сервиса, также и на отключение и подключение клиентов. Оснавная сложность в проекте это маштабируемость и реорганизация сервисной сети. Данных будет не много, время передачи данных не критично.
I>Я думаю что HTTP к это задачи не подходит и будет overhead-ом.

Что-то навроде мониторинга ? Почему HTTP не подходит и как считаешь оверхед ?
Re: Cетевой сервис
От: SkyDance Земля  
Дата: 14.12.17 18:58
Оценка:
I>Нужно реализовать сетевой сервис, данные пакуются в TCP и UDP пакеты и пересылаются по сети. Данных не много.

Лучше возьмите готовый. В зависимости от конкретики (типы, объемы данных и требования к задержкам) это может быть как просто "труба через SSH" (SSH tunnel), так и что-то иное.
Re[7]: Cетевой сервис
От: Pzz Россия https://github.com/alexpevzner
Дата: 17.12.17 11:25
Оценка:
Здравствуйте, Iso12, Вы писали:

G>>http не проще будет?

I>Думаю нет, сервисы должны работать с клиентами и обмениваться между собой данными.

http хорош тем, что он обычно работает даже у клиентов, у которых злобные админы зарезали весь трафик, кроме вебовского.

http можно использовать в режиме, когда там только уснановление сессии делается по-httpшному, а дальше получается практически нормальный tcp-сокет.

Готовые примеры — websocket и http/2

Кстати, в Go это все есть, как часть стандартной библиотеки
Re: Cетевой сервис
От: lpd Черногория  
Дата: 17.12.17 11:41
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Добрый день,


I>Нужно реализовать сетевой сервис, данные пакуются в TCP и UDP пакеты и пересылаются по сети. Данных не много.II

I>...

I>Кто что может посоветовать?


Провел бы сразу опрос, кто считает какой язык программирования и протокол лучшим.
Я голосую за D.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Отредактировано 17.12.2017 11:41 lpd . Предыдущая версия .
Re[10]: Cетевой сервис
От: Iso12  
Дата: 17.12.17 12:21
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>Что-то навроде мониторинга ? Почему HTTP не подходит и как считаешь оверхед ?


Да, что-то вроде этого. HTTP не подходит, потому что сервис должен уметь находить другие сервисы в сети и к ним подсоеденятся ипередовать информацию о своих клиентах другим сервисам и получить такие же данные от других сервисах. Имеем не Server-Client архитектуру а Mesh network.
Re[2]: Cетевой сервис
От: Iso12  
Дата: 17.12.17 12:24
Оценка:
Здравствуйте, lpd, Вы писали:



lpd>Провел бы сразу опрос, кто считает какой язык программирования и протокол лучшим.

lpd>Я голосую за D.
Вообще-то думал об этом но судя по количеству ответов здесь, боюсь не взлетит.
Re[3]: Cетевой сервис
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 17.12.17 12:39
Оценка:
Здравствуйте, Iso12, Вы писали:

scf>>Какие языки и API знаете?

I>Писал на C++. Но я думаю выучить и опробовать новый язык будет не проблема.

Выучить можно всё что угодно, но если понадобится другой(ие) программист(ы), то возникает вопрос, какого спеца найти проще: GO, Rust или С++. Что-то я думаю ответ здесь однозначен.
Re[11]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.12.17 07:57
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Да, что-то вроде этого. HTTP не подходит, потому что сервис должен уметь находить другие сервисы в сети и к ним подсоеденятся ипередовать информацию о своих клиентах другим сервисам и получить такие же данные от других сервисах. Имеем не Server-Client архитектуру а Mesh network.


Ты говоришь про топологию, а я говорю про протокол. HTTP вообще говоря cпокойно может применяться даже таких вот сетях.
Re[12]: Cетевой сервис
От: Iso12  
Дата: 18.12.17 09:52
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I> Ты говоришь про топологию, а я говорю про протокол. HTTP вообще говоря cпокойно может применяться даже таких вот сетях.


Что не правильно? Протокол и разрабатывался под определённую топологию.
Цитирую с Вики:

Основой HTTP является технология «клиент-сервер», то есть предполагается существование:

Потребителей (клиентов), которые инициируют соединение и посылают запрос;
Поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.


Мне нужно, чтобы при подключении новой клиентской программы к сервису, все клиенты об этом сразу бы и узнали. "Запрос-ответ" (HTTP) здесь не совсем подходит, так как в этом случае надо реализовывать Polling (постоянные запросы для клиентов).

Мне нужно не то что модно, а то что удобно и практично.
По мне, так удобней получать пакеты асинхронно и парсить бинарные пакеты в своём формате, чем html странички.
Re[13]: Cетевой сервис
От: Sharov Россия  
Дата: 18.12.17 11:17
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Здравствуйте, Ikemefula, Вы писали:


I>Мне нужно, чтобы при подключении новой клиентской программы к сервису, все клиенты об этом сразу бы и узнали. "Запрос-ответ" (HTTP) здесь не совсем подходит, так как в этом случае надо реализовывать Polling (постоянные запросы для клиентов).


почему нельзя сделать push?
Кодом людям нужно помогать!
Re[13]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.12.17 11:32
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Мне нужно, чтобы при подключении новой клиентской программы к сервису, все клиенты об этом сразу бы и узнали. "Запрос-ответ" (HTTP) здесь не совсем подходит, так как в этом случае надо реализовывать Polling (постоянные запросы для клиентов).


Здесь единственная внятная альтернатива, это построение своего протокола на базе UDP. И при этом придется изобрести половину или больше того, что уже есть в http

Сразу узнавали — такого не бывает. Всегда есть задержка.

I>Мне нужно не то что модно, а то что удобно и практично.

I>По мне, так удобней получать пакеты асинхронно и парсить бинарные пакеты в своём формате, чем html странички.

А при чем здесь html странички ? http как раз и позволяет получать те самые пакеты асинхронно, только называются они запросами-ответами. Кто мешает положить в http бинарник ?
Re[14]: Cетевой сервис
От: Iso12  
Дата: 18.12.17 11:55
Оценка:
Здравствуйте, Sharov, Вы писали:


S>почему нельзя сделать push?


Как я понимаю,под Push-ем Вы имеете ввиду вот это.
Я наверное человек консервативного мышления, и наверное не понимаю всей прелести HTTP.
Но для меня проще взять TCP-Socket и организовать на нём обмен асинхронными и сихронными пакетами,
чем организовывать тоже самое на WebSockete и HTML5.
Re[14]: Cетевой сервис
От: Iso12  
Дата: 18.12.17 12:05
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здесь единственная внятная альтернатива, это построение своего протокола на базе UDP. И при этом придется изобрести половину или больше того, что уже есть в http


Так и задумывается : поиск по UDP, потом после ответа, TCP-содинение с обменом синхронныи и асинхронными пакетами.


I>>Мне нужно не то что модно, а то что удобно и практично.

I>>По мне, так удобней получать пакеты асинхронно и парсить бинарные пакеты в своём формате, чем html странички.

I>А при чем здесь html странички ? http как раз и позволяет получать те самые пакеты асинхронно, только называются они запросами-ответами. Кто мешает положить в http бинарник ?


Так зачем обёртывать в HTTP если можно передать напрямую?
Re[15]: Cетевой сервис
От: Sharov Россия  
Дата: 18.12.17 12:43
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Как я понимаю,под Push-ем Вы имеете ввиду вот это.

I>Я наверное человек консервативного мышления, и наверное не понимаю всей прелести HTTP.
I>Но для меня проще взять TCP-Socket и организовать на нём обмен асинхронными и сихронными пакетами,
I>чем организовывать тоже самое на WebSockete и HTML5.

В результате Вы придумаете свое колесо, вместо того, чтобы воспользоваться уже сущ. наработками. Для http куча всего есть и он много для чего подходит.
Я пока что не увидел из планируемой функ-ти того, что нельзя сделать на http. Ну mesh-топология и что? Ну обменивайтесь инф-ей через http.
Кодом людям нужно помогать!
Re[15]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.12.17 12:52
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Я наверное человек консервативного мышления, и наверное не понимаю всей прелести HTTP.


В HTTP всё уже изобретено, и куча проблем, узких место проработана, задокументирована. Осталось только пользоваться.

I>Но для меня проще взять TCP-Socket и организовать на нём обмен асинхронными и сихронными пакетами,

I>чем организовывать тоже самое на WebSockete и HTML5.

Не совсем понятно, чем это проще. Возможно привычнее ? Для хттп берется нужная либа и всё zeromq — нужная либа и всё. Если начинать с tcp-socket, то такую либу надо написать, отладить, продумать все кейсы, переписать, и так каждый раз при обнаоружении проблем или изменении требований/топологии и тд.

Скажем, как только клиенты окажутся разных сетях, фокусы с UDP резко усложнятся и тут снова или писать-писать-писать, или брать готовую либу.

Обычно такая эпопея заканчивается или переходом на http (или другой широко известный протокол прикладного уровня) или изобретением http (или другого широко изветсного протокола прикладного уровня).

Как то так.
Re[16]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.12.17 15:23
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Я пока что не увидел из планируемой функ-ти того, что нельзя сделать на http. Ну mesh-топология и что? Ну обменивайтесь инф-ей через http.


Товарищ похоже задумал писать "на сокетах" и загадал загадку. Чем больше его отговариваешь и предлагаешь взять внятный инструмент, тем сильнее у него ощущение что писать надо "на сокетах".
Re[16]: Cетевой сервис
От: lpd Черногория  
Дата: 18.12.17 15:32
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, Iso12, Вы писали:


I>>Я наверное человек консервативного мышления, и наверное не понимаю всей прелести HTTP.


I>В HTTP всё уже изобретено, и куча проблем, узких место проработана, задокументирована. Осталось только пользоваться.


Да что уж там: пускай браузер сразу встраивает и пишет все на AngularJS.

I>Скажем, как только клиенты окажутся разных сетях, фокусы с UDP резко усложнятся и тут снова или писать-писать-писать, или брать готовую либу.


Чем усложняется? broadcast? — его не сделать на HTTP, если он вдруг нужен.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Re[16]: Cетевой сервис
От: alex_public  
Дата: 18.12.17 15:54
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>>Так и задумывается : поиск по UDP, потом после ответа, TCP-содинение с обменом синхронныи и асинхронными пакетами.

I>Ну вот часть HTTP уже изобретена
I>Посмотри http://zeromq.org/ Там уже много чего готового для тебя.

Вот из твоего текста что-то непонятно, ты в итоге то советуешь человеку использовать HTTP или ZeroMQ? )
Re[17]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.12.17 16:09
Оценка:
Здравствуйте, lpd, Вы писали:

I>>В HTTP всё уже изобретено, и куча проблем, узких место проработана, задокументирована. Осталось только пользоваться.


lpd>Да что уж там: пускай браузер сразу встраивает и пишет все на AngularJS.


Браузер использует очень малую часть HTTP.

I>>Скажем, как только клиенты окажутся разных сетях, фокусы с UDP резко усложнятся и тут снова или писать-писать-писать, или брать готовую либу.


lpd>Чем усложняется? broadcast? — его не сделать на HTTP, если он вдруг нужен.


Скажем, клиенты окажутся со временем в разных сетях. Что ты будешь делать ? А как ты будешь перегрузку контролировать ? Шифрование понадобится ? Аутентификация ?
Re[17]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.12.17 16:10
Оценка:
Здравствуйте, alex_public, Вы писали:

I>>>Так и задумывается : поиск по UDP, потом после ответа, TCP-содинение с обменом синхронныи и асинхронными пакетами.

I>>Ну вот часть HTTP уже изобретена
I>>Посмотри http://zeromq.org/ Там уже много чего готового для тебя.

_>Вот из твоего текста что-то непонятно, ты в итоге то советуешь человеку использовать HTTP или ZeroMQ? )


Я в курсе, что ты плохо читаешь. zeromq — это что бы легче было HTTP изобретать.
Re[18]: Cетевой сервис
От: lpd Черногория  
Дата: 18.12.17 16:25
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, lpd, Вы писали:


I>Скажем, клиенты окажутся со временем в разных сетях. Что ты будешь делать ? А как ты будешь перегрузку контролировать ? Шифрование понадобится ? Аутентификация ?


В разных сетях UDP вполне работает, кроме сложностей с broadcast.

Данных будет не много, время передачи данных не критично.

Т.е. контроль перегрузки не нужен.
Шифрование можно сделать на OpenSSL.
Из задачи, описанной ТС, неясно, что именно ему даст использование http, кроме некоторого возможного оверхеда парсинга заголовков. Поэтому не вижу причин натягивать высокоуровневый протокол без необходимости. Хотя, может, это и не смертельно.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Re: Cетевой сервис
От: novitk США  
Дата: 18.12.17 17:13
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Смотрю в сторону GO, Rust и С++.

С практической точки зрения надо выбирать между C++(если скорость очень важна) и JVM. Выгоды от использование двух других языков не будет никакой, а проблем будет вагон и тележка.
Re[2]: Cетевой сервис
От: Iso12  
Дата: 18.12.17 20:47
Оценка:
Здравствуйте, novitk, Вы писали:


N>С практической точки зрения надо выбирать между C++(если скорость очень важна) и JVM. Выгоды от использование двух других языков не будет никакой, а проблем будет вагон и тележка.


Какие проблемы?
Re[17]: Cетевой сервис
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.12.17 20:59
Оценка:
Здравствуйте, lpd, Вы писали:


lpd>Чем усложняется? broadcast? — его не сделать на HTTP, если он вдруг нужен.


Все там нормально делается, UPNP и TCP использует, и UDP, и, внезапно и там и там HTTP
Маньяк Робокряк колесит по городу
Re[3]: Cетевой сервис
От: novitk США  
Дата: 18.12.17 21:20
Оценка:
Здравствуйте, Iso12, Вы писали:

N>>С практической точки зрения надо выбирать между C++(если скорость очень важна) и JVM. Выгоды от использование двух других языков не будет никакой, а проблем будет вагон и тележка.


I>Какие проблемы?


Скорость и кривизна, особенно если речь идет !=х86
стабильность и качество инструментов
отсутствие кадров
частое "велосипедирование"
Re[19]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 19.12.17 06:07
Оценка:
Здравствуйте, lpd, Вы писали

lpd>В разных сетях UDP вполне работает, кроме сложностей с broadcast.


Он может работать, а может и не работать. Скажем, для обхода NAT придуманы STUN, TURN, ICE.

lpd>

lpd>Данных будет не много, время передачи данных не критично.


Вот здесь просится чтото готовое и простое. Разве нет?

lpd>Т.е. контроль перегрузки не нужен.

lpd>Шифрование можно сделать на OpenSSL.

Да, изобретешь еще кусочек HTTP.

lpd>Из задачи, описанной ТС, неясно, что именно ему даст использование http, кроме некоторого возможного оверхеда парсинга заголовков.


Это даст готовый протокол, с которым можно делать все что угодно. Кроме бродкаста. Но обнаружение сервисов, клиентов можно и без бродкаста делать.
Re[18]: Cетевой сервис
От: Mr.Delphist  
Дата: 19.12.17 11:00
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, lpd, Вы писали:



lpd>>Чем усложняется? broadcast? — его не сделать на HTTP, если он вдруг нужен.


M>Все там нормально делается, UPNP и TCP использует, и UDP, и, внезапно и там и там HTTP


Ну, скажем так, это всё ж скорее IGMP

И это, про IPv6 не забываем, господа. Там бродкастов нету (и туда им, спамерам, и дорога).
Re[13]: Cетевой сервис
От: Stanislaw K СССР  
Дата: 19.12.17 11:20
Оценка:
Здравствуйте, Iso12, Вы писали:


I>Мне нужно, чтобы при подключении новой клиентской программы к сервису, все клиенты об этом сразу бы и узнали.


Что то у меня ощущение что ты секретный чатик, убийцу скайпа что ли, пишешь. Чем jabber/xmpp не устраивает? шифрование, бинарные данные, голос, видео, умеет. При подключении клиента "Вася" клиент "Петя" своевременно уведомляется.


Или зачем клиенту знать что к серверу подключился другой клиент? Конкретизируй задачу.
Все проблемы от жадности и глупости
Re[20]: Cетевой сервис
От: Sharov Россия  
Дата: 19.12.17 17:03
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>Это даст готовый протокол, с которым можно делать все что угодно. Кроме бродкаста. Но обнаружение сервисов, клиентов можно и без бродкаста делать.


1)Почему не сделать broadcast, если заранее знать все хосты?
2) На правах теории -- коли время не важно, можно использовать gossip protocol.
Кодом людям нужно помогать!
Re[19]: Cетевой сервис
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 19.12.17 19:00
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:


lpd>>>Чем усложняется? broadcast? — его не сделать на HTTP, если он вдруг нужен.


M>>Все там нормально делается, UPNP и TCP использует, и UDP, и, внезапно и там и там HTTP


MD>Ну, скажем так, это всё ж скорее IGMP


IGMP разве не наворот над UDP, дающий ему некоторые доп возможности? Ну, и это транспорт, а на уровне прикладного протокола там вполне HTTP летает и в простых UDP пакетаках, и в бродкастных, и в мультикастных, и адресных, и по TCP/ (сорян, мог с терминологией ошибиться, с OSI не очень )


MD>И это, про IPv6 не забываем, господа. Там бродкастов нету (и туда им, спамерам, и дорога).


Да, но там что-то другое было. И мультикаст вроде есть, хотя не буду утверждать, давно смотрел это дело
Маньяк Робокряк колесит по городу
Re[18]: Cетевой сервис
От: alex_public  
Дата: 20.12.17 08:03
Оценка:
Здравствуйте, Ikemefula, Вы писали:

_>>Вот из твоего текста что-то непонятно, ты в итоге то советуешь человеку использовать HTTP или ZeroMQ? )

I>Я в курсе, что ты плохо читаешь. zeromq — это что бы легче было HTTP изобретать.

Для http zeromq как раз не нужен. А вот для обсуждаемой задачки действительно не плохо подходит.
Re[19]: Cетевой сервис
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.12.17 09:53
Оценка:
Здравствуйте, alex_public, Вы писали:

_>>>Вот из твоего текста что-то непонятно, ты в итоге то советуешь человеку использовать HTTP или ZeroMQ? )

I>>Я в курсе, что ты плохо читаешь. zeromq — это что бы легче было HTTP изобретать.

_>Для http zeromq как раз не нужен. А вот для обсуждаемой задачки действительно не плохо подходит.


А вот для изобретения http этот самый zeromq вообще идеально вписывается.
Re: Cетевой сервис
От: Basil2 Россия https://starostin.msk.ru
Дата: 15.01.18 15:33
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Нужно реализовать сетевой сервис, данные пакуются в TCP и UDP пакеты и пересылаются по сети. Данных не много.

I>В общем обыкновенная реализация сервера и клиента, но нужно реализовать кросплатформенно (Windows Linux, macOS).

I>Кто что может посоветовать?


Python. Дешево, сердито, многоплатформенно.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.