<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Ошибка connect() в мультипроцессном приложении</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/7599.html</link>
    <description>В общем это мультипроцессный сервер, призванный ретранслировать аудиопоток. Написал как попало, и оно немножко работает. Помогите разобраться в глюках.&lt;br&gt;Принцип работы: порождается клиентский процесс, соединяющийся с аудио каналом 128 кб/с и читающий оттудова данные без метаинформации и заносящий их в общий буфер;&lt;br&gt;затем, при подключении клиентов, им отдается содержимое этого буфера.&lt;br&gt;&lt;br&gt;Проще для себя способа синхронизации, чем изменение общей переменной, не нашел, возможно он глюкавый.&lt;br&gt;&lt;br&gt;&#091;gpk&#064;localhost server&#093;$ ./serv 10.25.250.1 / 8000 9988&lt;br&gt;Rebroadcastinf 128 kbps mp3 stream without metadata&lt;br&gt;listener 2: Invalid argument&lt;br&gt;&#091;gpk&#064;localhost server&#093;$ op&lt;br&gt;op&lt;br&gt;op&lt;br&gt;op&lt;br&gt;&lt;br&gt;Возникает ошибка Invalid argument в родительском прцессе и он завершается, в то время, как порожденный клиент работает некоторое время, получая данные, но потом, все равно, отрубается.&lt;br&gt;&lt;br&gt;server.c&#091;code&#093;#include &amp;lt;unistd.h&amp;gt;&lt;br&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;#include &amp;lt;string.h&amp;gt;&lt;br&gt;&lt;br&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;br&gt;#include &amp;lt;sys/socket.h&amp;gt;&lt;br&gt;#include &amp;lt;sy</description>

<item>
    <title>Ошибка connect() в мультипроцессном приложении (NuINu)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/7599.html#4</link>
    <pubDate>Tue, 07 Oct 2008 18:26:46 GMT</pubDate>
    <description>&amp;gt;&#091;b&#093;NuINu,&#091;/b&#093; Спасибо ;-) &lt;br&gt;&lt;br&gt;Собственно, не зачто :)&lt;br&gt;простая отсылка к семаформа вряд ли сильно поможет, там надо релизовывать алогоритм один писатель несколько читателей, я у хассан гома, видел подобный, на 3 семафорах.&lt;br&gt;но мой алгоритм работает аж на 4 х :), работает в тестах, скажем так показывает нормальную синхронную работу(отставшие задачи, пропускают буфер), правда сетевую версия я не доделал, некогда.&lt;br&gt;</description>
</item>

<item>
    <title>Ошибка connect() в мультипроцессном приложении (nkk)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/7599.html#3</link>
    <pubDate>Tue, 07 Oct 2008 15:39:11 GMT</pubDate>
    <description>&#091;b&#093;NuINu,&#091;/b&#093; Спасибо ;-)&lt;br&gt;</description>
</item>

<item>
    <title>Ошибка connect() в мультипроцессном приложении (NuINu)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/7599.html#2</link>
    <pubDate>Mon, 22 Sep 2008 12:02:58 GMT</pubDate>
    <description>&lt;br&gt;&amp;gt;strcpy( sh_blink, strcmp( &quot;1&quot;, sh_blink ) ? &quot;1&quot; : &quot;0&quot; ); &lt;br&gt;&amp;gt;при всей ненужности этого кода, вы выделили 1 байт, а копируете 2. &lt;br&gt;&lt;br&gt;пардон, там не в байтах а в страницах выделяется. упустил.&lt;br&gt;</description>
</item>

<item>
    <title>Ошибка connect() в мультипроцессном приложении (NuINu)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/7599.html#1</link>
    <pubDate>Mon, 22 Sep 2008 11:57:53 GMT</pubDate>
    <description>&amp;gt;В общем это мультипроцессный сервер, призванный ретранслировать аудиопоток. Написал как попало, и &lt;br&gt;&amp;gt;оно немножко работает. Помогите разобраться в глюках. &lt;br&gt;&lt;br&gt;А у тебя не плохое чувство юмора! :)&lt;br&gt;&lt;br&gt;Первая ошибка: плохое документирование исходника ======1=====  это не коментарий.&lt;br&gt;&lt;br&gt;касаемов вылета, сделайте два! сокета и два раза вызовите socket&lt;br&gt;и для первого через который вы гет посылаете измените название.&lt;br&gt;&lt;br&gt;strncat( buf, argv&#091;2&#093;, strlen( argv&#091;1&#093; ) );&lt;br&gt;это ерунда какаято.&lt;br&gt;&lt;br&gt;strcpy( sh_blink, strcmp( &quot;1&quot;, sh_blink ) ? &quot;1&quot; : &quot;0&quot; );&lt;br&gt;при всей ненужности этого кода, вы выделили 1 байт, а копируете 2.&lt;br&gt;надо как то так:&lt;br&gt;*sh_blink = (*sh_blink == &apos;1&apos; ?&apos;1&apos;:&apos;0&apos;);&lt;br&gt;&lt;br&gt;самое главное нет концепции как все это должно правильно работать.&lt;br&gt;вот почитайте про семафоры думаю поможет http://www.codenet.ru/progr/cpp/7/3.php&lt;br&gt;&lt;br&gt;главное: когда начинает писать в шару поставщик контента, все реады должны быть закончены и новые блокироваться.&lt;br&gt;для этого нужно два семафора, один для всех читателей, которые могут начинать чтение </description>
</item>

</channel>
</rss>
