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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> iterative server 
:(
    Опции темы
sol78
Дата 5.1.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Problema takaya :
dlya togo chtob Iterative Server vsegda nahodilsya v ozhidanie clientov, nuzhno chtob na to fifo kotoroe on otkrivaet na read, ukazival esche odin, dopolnitelьniy deskriptor, togda dlya kernela etot fifo vsegda budet "zanyat" i on ne stanet ego zakrivatь.
ya delayu tak:
Код

#include "common.h"
#include <stdio.h>
#include <strings.h>

/*---- service function: removes '\n' */
void remn(char* buff)
{
    int bufflen;
    bufflen=strlen(buff);
    if ('\n' == buff[bufflen-1])
    {
        buff[bufflen-1] = '\0';
        bufflen--;
    }
}

void server(char* clientFifoName, char* fileName);

/*------- server main --------*/
main()
{
    FILE* serFifo;
    FILE* tmpFifo;
    char clientFifoName[MAXNAME];
    char fileName[MAXNAME];
    int rc;
    
    printf("server: started, PID=%d, FIFO=%s\n", getpid(), SERVER_FIFO);
    
    /* create Server FIFO */
    if((mknod(SERVER_FIFO, S_IFIFO | PERMS,0)<0) && 
       (errno!=EEXIST))
    {    
        perror("server: can't create server FIFO"); 
        exit(1);
    }
printf("kuku");
    /* open Server FIFO to read */
    serFifo = fopen(SERVER_FIFO, "r");
    if (NULL == serFifo)
    {
        perror("server: server FIFO open failed");
        unlink(SERVER_FIFO);
        exit(1);
    }
   /* open tmp FIFO to write */ //ne pomogaet, otrabotav server vixodit ....

     tmpFIFO= fopen(SERVER_FIFO, "w");
    if(NULL == tmpFIFO)
    {
     perror("server: tmp FIFO open failed");
      unlink(SERVER_FIFO);
      exit(1);
     }
 
        

    /* read client request, containing 2 strings:
       - clientFifoName
       - fileName
    */
    while(1){
    if ((NULL == fgets(clientFifoName, MAXNAME, serFifo)) ||
        (NULL == fgets(fileName, MAXNAME, serFifo)) )
    {
/*        perror ("server: failed to read client request");
        fclose(serFifo);
        unlink(SERVER_FIFO);
        exit(1); 
*/      continue; 
    }

    /* remove '\n' symbols */
    remn(clientFifoName);
    remn(fileName);

    printf("\nserver: request accepted: client FIFO=%s, file=%s\n",
           clientFifoName, fileName);
    
    /* call server procedure */
    server(clientFifoName, fileName);
    }
    /* close and unlink server FIFO */
    fclose(serFifo);
    unlink(SERVER_FIFO);
    exit(0);
}



kak eto sdelatь, umenya ne poluchaetsya?
P.S. Kogda  budet translit? 
PM MAIL   Вверх
bsa
Дата 5.1.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



sol78, транслит находится слева под смайликами в виде CheckBox'а
PM   Вверх
sol78
Дата 5.1.2008, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



bsa, ti xotь proverь ego dlya nachala a potom, vstavlyay zamechaniya!
PM MAIL   Вверх
MAKCim
Дата 5.1.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



sol78
что конкретно не получается?


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

PM MAIL   Вверх
sol78
Дата 5.1.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



nado chtob server rabotal "beskonechno", - eto ne poluchaetsya .
esli net clientov on zavershaet svoyu rabotu?
PM MAIL   Вверх
MAKCim
Дата 5.1.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



sol78
1. в самой программе есть ошибки (впредь приводи рабочий код)
2. у меня все работает
если убрать
Код

server(clientFifoName, fileName);

то при запуске сервера идет такой вывод
Код

server: started, PID=4049, FIFO=fifo
kuku
server: request accepted: client FIFO=maxim, file=falaleev

server: request accepted: client FIFO=maxim, file=falaleev

server: request accepted: client FIFO=maxim, file=falaleev

server: request accepted: client FIFO=maxim, file=falaleev

server: request accepted: client FIFO=maxim, file=falaleev

код клиента
Код

int fd = open("fifo", O_WRONLY);
write(fd, "maxim\nfalaleev\n", 15);


Добавлено через 49 секунд
и используй CheckBox транслит


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

PM MAIL   Вверх
nickless
Дата 5.1.2008, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

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



Слегка smile 
Транслит в данный момент не работает, надеемся что скоро починят...


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
MAKCim
Дата 5.1.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



nickless
не знал  smile 


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

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

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

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


 




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


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

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