Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача данных из клиента в сервер, через неименованный канал 
:(
    Опции темы
Anark1
Дата 12.12.2009, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



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

Код

//CLIENT

        //структура-сообщение, очередь создается выше и работает корректно

    struct 
    {
        long mestype;
        int pipe_read;
        int pipe_write;
    } msg_pipe;

        //в канал все записывается 

    for (i=1;i<=width*height;i++)
    {
        scanf("%d",&num);
        write(big_pipe[1],&num,sizeof(int));
    }
    
    //настройка и передача сообщения, MSGPIPE моя константа

    msg_pipe.mestype = MSGPIPE;
    msg_pipe.pipe_read = big_pipe[0];
    msg_pipe.pipe_write = big_pipe[1];
    
    msgsnd(msid,&msg_pipe,2*sizeof(int),0);


Код

//SERVER
        
    //очередь сообщений создана, структура msg_pipe аналогична клиентской
    //читаем сообщение из очереди
 
    msgrcv(msid,&msg_pipe,2*sizeof(int),MSGPIPE,0);

    big_pipe[0] = msg_pipe.pipe_read;
    big_pipe[1] = msg_pipe.pipe_write;
    
    //идентификаторы передались корректно
    //но данный оператор читать из пайпа не желает
    read(big_pipe[0],&num,sizeof(int));


Похоже проблема в том, что пайпы можно использовать только для взаимодействия между родительскими и дочерними процессами. Если я прав, то можно ли как-то заставить это работать?
Заранее спасибо.    

Это сообщение отредактировал(а) Anark1 - 12.12.2009, 21:30


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anark1
Дата 12.12.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Наверное обойти это никак нельзя, буду делать через FIFO. Если у кого появятся идеи - буду только рад.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
MAKCim
Дата 13.12.2009, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата(Anark1 @  12.12.2009,  21:42 Найти цитируемый пост)
Если у кого появятся идеи - буду только рад. 

используйте сокеты
они лучше масштабируются и более универсальны


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
svlary
Дата 14.12.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 8.9.2009

Репутация: 4
Всего: 4



Цитата(Anark1 @  12.12.2009,  21:42 Найти цитируемый пост)
Наверное обойти это никак нельзя,


Код

man 7 pipe

...
Pipes  can be used to create a communication channel between [color=red]related[/color] processes; 
...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.