<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: бинарные данные (с++ демон и php)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8136.html</link>
    <description>Здравствуйте,&lt;br&gt;&lt;br&gt;Пишу небольшой демон на си++, который через локальные сокеты общается с пхп скриптом. На данный момент общаются они в текстовом режиме и приходится в си демоне числовые типы double, int преобразовывать в строки:&lt;br&gt;&#091;code&#093;&lt;br&gt;char buf&#091;33&#093;;&lt;br&gt;sprintf(buf,&quot;&#037;d&quot;,int_total);&lt;br&gt;std::string total_str = buf;&lt;br&gt;bzero(buf, 33);&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;все бы ничего, но данных куча. очень неудобно. хотелось бы в сокет бинарные данные посылать и получать (лучше структуру), чтобы в php части можно было бы из бинарной последовательности сформировать такую же структуру или просто такие же переменные.&lt;br&gt;&lt;br&gt;не могу найти информации с примерами по этому вопросу. не понимаю:&lt;br&gt;- как считать данные после отправки? пример ищу, пусть даже если общаются две си++ программы, а еще лучше си&amp;lt;-&amp;gt;сокет&amp;lt;-&amp;gt;php... в php вроде бы unpack нужно использовать?&lt;br&gt;- необходимы ли какие-то преобразования до отправки? можно ли int,double или структуру присвоить к std::string и эту строку отправить через бинарный сокет?&lt;br&gt;- как получить в php структуру?</description>

<item>
    <title>бинарные данные (с++ демон и php) (angra)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8136.html#4</link>
    <pubDate>Mon, 09 Mar 2009 13:04:02 GMT</pubDate>
    <description>http://www.boost.org/doc/libs/1_38_0/libs/serialization/doc/index.html. &lt;br&gt;&lt;br&gt;По поводу &quot;старый, геморный, текстовый вариант обмена&quot;, сдается неверной дорогой идете, товарищ. Либо не знаете библиотек для работы с текстом, либо помешаны на оптимизации по объему в ущерб всему остальному. &lt;br&gt;</description>
</item>

<item>
    <title>бинарные данные (с++ демон и php) (flexik)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8136.html#3</link>
    <pubDate>Mon, 09 Mar 2009 12:37:43 GMT</pubDate>
    <description>&amp;gt;Сериализация в бинарный объект имеет смысл в пределах одного языка. То есть &lt;br&gt;&amp;gt;когда клиент и сервер написаны на одном языке и знают как &lt;br&gt;&amp;gt;работать с такими объектами. В случае разных языков получается грязный хак &lt;br&gt;&amp;gt;с одной из сторон. Смысла в таком немного, но если хотите, &lt;br&gt;&amp;gt;то флаг и исходники php вам в руки. &lt;br&gt;&amp;gt;Если же делать по уму, то стоит использовать какой-то промежуточный формат, понимаемый(в &lt;br&gt;&amp;gt;смысле есть либы/модули преобразования) обоими языками, например XML/YAML/JSON. В этом случае &lt;br&gt;&amp;gt;смена языка для клиента или сервера не заставит переписывать второй компонент. &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;спасибо, понятно, значит для обмена данными между пхп частью и си++ остается старый, геморный, текстовый вариант обмена.&lt;br&gt;&lt;br&gt;а как быть с СЕРИАЛИЗАЦИЕЙ если именно речь идет о том, чтобы сериализовать данный из си++ демона в бинарный файл и потом в него же их востановить? может есть какие-то статьи хорошие или примеры в букмарках у кого-нибудь по работе с бинарными данными? &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>бинарные данные (с++ демон и php) (angra)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8136.html#2</link>
    <pubDate>Mon, 09 Mar 2009 07:42:44 GMT</pubDate>
    <description>Сериализация в бинарный объект имеет смысл в пределах одного языка. То есть когда клиент и сервер написаны на одном языке и знают как работать с такими объектами. В случае разных языков получается грязный хак с одной из сторон. Смысла в таком немного, но если хотите, то флаг и исходники php вам в руки. &lt;br&gt;Если же делать по уму, то стоит использовать какой-то промежуточный формат, понимаемый(в смысле есть либы/модули преобразования) обоими языками, например XML/YAML/JSON. В этом случае смена языка для клиента или сервера не заставит переписывать второй компонент. &lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>бинарные данные (с++ демон и php) (flexik)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8136.html#1</link>
    <pubDate>Mon, 09 Mar 2009 04:01:44 GMT</pubDate>
    <description>&lt;br&gt;да, и также бинарные данные нужны для сериализации. с ней тоже не совсем понятно, допустим, с чьей-нибудь помощью научусь писать и передавать простые типы через сокет (там структура данных одна и таже, при приеме/передаче обе программы заранее знаю размеры и последовательность данных, т.е. как-то по битам могут считать, но что при сериализации? вдруг от версии программы к версии изменятся типы или их станет больше в структуре чем было? тогда структура уже не годная и не может быть считана? &lt;br&gt;как быть если в структуре есть std::string, у неё ведь переменый размер.. как такая структура может быть сериализована? &lt;br&gt;</description>
</item>

</channel>
</rss>
