powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сокетный сервер (многопоточный)
5 сообщений из 30, страница 2 из 2
Сокетный сервер (многопоточный)
    #34458589
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zmeishe Akhсразу готов к приему данных.
Он то готов, но событие о прибытии данных ещё не наступило для программы, а функция thread->start() уже отработала. Программа уже скомандовала старт нити и ждёт, когда же нить фактически стартует и ждёт прихода запроса от клиента. И тут ошибка - она В ГДЕ? Между чем и чем?

Событие о прибытии данных? У тебя асинхронная передача данных?

Вот по этому событию и создавай свою нить.

Я бы создовал по коннекшену и в нем бы получал событие прихода данных.
...
Рейтинг: 0 / 0
Сокетный сервер (многопоточный)
    #34458596
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же, коннектов может быть много и без этой ошибки, потом часть клиентов отконнектились, потом другая часть начинает коннектиться и на очередной коннект ЭТА ОШИБКА.
А иногда сразу на первом коннекте отваливается. Снова запускаю и опять куча коннектов спокойно работают.
Со sleep`ом уже со вчерашнего вечера всё нормально.
Вот и предлагаю понаблюдать неделю 7x24, а потом сделаем выводы.
...
Рейтинг: 0 / 0
Сокетный сервер (многопоточный)
    #34458609
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhСобытие о прибытии данных? У тебя асинхронная передача данных?

Вот по этому событию и создавай свою нить.

Я бы создовал по коннекшену и в нем бы получал событие прихода данных.
Я по коннекшену создаю.
Если на каждое событие о приходе данных создавать - тормоза необычайные.
...
Рейтинг: 0 / 0
Сокетный сервер (многопоточный)
    #34458612
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZmeisheВ серверной как в холодильнике если тепловой контакт кулера с процом плохой, то и арктика не поможет
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Сокетный сервер (многопоточный)
    #34475002
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот.
7х24 прошли. Все работает стабильно. Без вздохов и бздыхов.
Но вот в чём фишка, Akh был прав. sleep() не решил проблему, а загнал её куда-то так, что она за 7x24 ни разу не проявилась.
Вылезла она только тогда, когда я добавил в один класс новую функцию.
Программа стала неработостпособной вовсе. Т.е. изменился размер класса и чего-то где-то сместилось. Некий указатель стал указывать на адрес, в котором вдруг ничего нет, а вообще-то было. И никаких delete не вызывалось, так как delete на этот указатель только в деструкторе родительского класса.
Вот код.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
QIBDataModule::QIBDataModule(const QString& iniKeyEntry): QRemoteIBDataModule()
{
 QString s_key;   
 QSettings settings;
 settings.beginGroup("/settings-srv-sock");

 ... 
 s_key = iniKeyEntry + QString("/DBServer");
 IBDb->DatabaseName = settings.readEntry(s_key, "Ib-Server");

 s_key = iniKeyEntry + QString("/DBName");
 IBDb->DatabaseName += QString(":") + settings.readEntry(s_key, "/base/test.ib");  

 // функция  settings.readEntry возвращала лажу т.к. s_key уже лажовый.
 // при этом каким-то образом портился указатель IBDb.

 connect(IBDb, SIGNAL(sendBeforeConnect()), SLOT(slotBeforeConnect()));
} 


void QIBDataModule::slotBeforeConnect()
{
   QIBDatabase *db;
   QString User;
   
    // Вот тут указатель уже испорчен, а должен  быть IBDb
    db = (QIBDatabase*) sender();
   
    // При первом же обращении "Ошибка сегментирования"
   User = db->getUsername(); 

   ...
}


Код: plaintext
1.
2.
3.
4.
// Решил проблему выкидыванием &
QIBDataModule::QIBDataModule(const QString iniKeyEntry): QRemoteIBDataModule()
{
}

Не случайно меня интересовал Сакральный смысл передачи по ссылке &

Интересно, я теперь решил проблему или загнал ещё глубже чем sleep()?
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сокетный сервер (многопоточный)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]