Показано с 1 по 2 из 2
  1. #1
    Гость форума
    Регистрация
    17.07.2008
    Сообщений
    5
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию работа с сокетами в потоке

    Здравствуйте. В программе, под Linux на с++, создаю где 50-100 потоков в каждом:
    {
    tv.tv_sec=2;
    tv.tv_usec=0;
    setsockopt(pGPS->GPSsock,SOL_SOCKET,SO_RCVTIMEO,&tv,sizeof(tv));
    tv.tv_sec=2;
    tv.tv_usec=0;
    setsockopt(pGPS->GPSsock,SOL_SOCKET,SO_SNDTIMEO,&tv,sizeof(tv));
    while(pGPS->EnableRD()==true) {
    lengthIn=read(pGPS->GPSsock, bufIn, BUF_SIZE-1);
    if ((errno!=11 & lengthIn<=0)| lengthIn==0)
    {
    pGPS->EnableRW(false);
    return 1;
    }
    if (lengthIn>0) {
    обрабатываем принятый буфер
    }
    if (есть что передать) {
    if (write(pGPS->GPSsock,bufOut,bufLen)<0) pGPS->EnableRW(false);
    }
    }
    }

    есть подозрение что иногда read или write подвисает, не выходя по таймауту. Возможно ли это ?

  2. #2
    Гость форума
    Регистрация
    17.07.2008
    Сообщений
    5
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: работа с сокетами в потоке

    И вообще стоит ли завязывать блокировку-таймаут на read или народ делает по другому?

Похожие темы

  1. Работа с реестром! Помогите!
    от demon7272 в разделе Microsoft Windows
    Ответов: 14
    Последнее сообщение: 18.09.2009, 14:33
  2. Работа с СОМ портом.
    от Spinxaler в разделе Общие вопросы
    Ответов: 1
    Последнее сообщение: 04.02.2008, 00:13
  3. Работа с 3 сетевухами
    от Spinxaler в разделе В помощь системному администратору
    Ответов: 3
    Последнее сообщение: 03.02.2008, 17:36
  4. Не простая работа на forex
    от FxTrader35 в разделе Зацените-ка!
    Ответов: 0
    Последнее сообщение: 11.12.2007, 01:23

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •