LINUX.ORG.RU

[C++] Socket Library

 


0

1

Добрый день,

хочется либу или враппер над каким нибудь boost::asio, который бы создавал сокет из строки. Например:

на входе: «UDP INPUT <HOST> <PORT>» - создает UDP-сокет, который забинден на <HOST> и на порту <PORT>

на входе: «MULTICAST OUTPUT <HOST> <PORT> <GROUP> - создает сокет, который забинден на <HOST>:<PORT> и заджойнен в группу <GROUP>

Бывает ли такое в природе?



Последнее исправление: indie (всего исправлений: 1)

напиши нужную тебе грамматику командной строки на ANTLR и обработай ручками полученные данные :) пишется за полдня вместе со знакомством с ANTLR

stevejobs ★★★★☆
()

во-первых, зачем?

во-вторых, это отказ от какой-никакой, но системы типов

в третьих, это пишется на коленке за 10 минут

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Как минимум это удобно. Скажем у меня есть парсер потока и ему пофигу откуда читать - mcast, udp, tcp, stdin, etc. Что бы читать данные достаточно всего одной функции read, которая во всех случаях имеет одну и ту же сигнатуру. Хотелось бы функцию, которая распарсит строку и вернет объект у которого будут методы open/close/read. Обратная ситуация, когда нужно разобранные данные писать куда-то.

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

Таже это добавит гибкости приложению, т.к. если в будущем что-то поменяются и данные будут идти не по мультикасту, а по tcp, то не придется менять приложение, а достаточно изменить конфиг.

Чем не аргумент?

И да, у меня есть свой велосипед, но возможно что-то подобное уже есть.

indie
() автор топика
Ответ на: комментарий от indie

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

Таже это добавит гибкости приложению, т.к. если в будущем что-то поменяются и данные будут идти не по мультикасту, а по tcp, то не придется менять приложение, а достаточно изменить конфиг.

[C++]

Полиморфизм. Коленка. Н-цать минут.

kulti ★★
()
Ответ на: комментарий от indie

И да, у меня есть свой велосипед, но возможно что-то подобное уже есть.

Задача слишком мала и слишком вариативна, чтобы писать под неё отдельную библиотеку или встраивать в существующую.

Begemoth ★★★★★
()

Всем отписавшимся спасибо

indie
() автор топика

boost.spirit в руки и вперед

yoghurt ★★★★★
()
Ответ на: комментарий от Begemoth

Я общаюсь с Java девелоперами, потому верю что человек это серьезно говорит )

vertexua ★★★★★
()
Ответ на: комментарий от Begemoth

Ну, использовать внешний инструмент (ANTLR), да ещё и генерирующий код на пусть и близком по синтаксису, но всё-же другом, языке (C vs C++) мне кажется нерациональным, при наличии «родного» boost::spirit::qi. К тому же, если вдруг потребуется наговнякать генератор — то к услугам «зеркальный» Qi boost::spirit::karma. Да, время конпеляции возрастает, и сильно возрастает, но и возможности, предоставляемые Spirit-ом, тоже велики.

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

Да, время конпеляции возрастает, и сильно возрастает

А понятность сообщений об ошибках? Или просто дело привычки? У меня руки никак не дойдут со Spirit-ом основательно повозиться.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

> А понятность сообщений об ошибках? Или просто дело привычки?

Поначалу страшно, но приучает делать как можно меньше ошибок. :-)

one_more_hokum ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.