Показано с 1 по 2 из 2
-
17.07.2008, 20:36 #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 подвисает, не выходя по таймауту. Возможно ли это ?
-
18.07.2008, 13:38 #2
- Регистрация
- 17.07.2008
- Сообщений
- 5
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: работа с сокетами в потоке
И вообще стоит ли завязывать блокировку-таймаут на read или народ делает по другому?
Похожие темы
-
Работа с реестром! Помогите!
от demon7272 в разделе Microsoft WindowsОтветов: 14Последнее сообщение: 18.09.2009, 15:33 -
Работа с СОМ портом.
от Spinxaler в разделе Общие вопросыОтветов: 1Последнее сообщение: 04.02.2008, 00:13 -
Работа с 3 сетевухами
от Spinxaler в разделе В помощь системному администраторуОтветов: 3Последнее сообщение: 03.02.2008, 17:36
Социальные закладки