Size: a a a

2020 May 12

RG

Renat Garaev in Qt
Павел
>> Технические требования в процессе разработки.
🤦‍♂️
Это самое главное. После релиза выпускать технические требования на следующий релиз. Чтобы сделали все виды вариантов😊А если не удалось написать тех требования, то все равно делать релиз к сроку.
источник

VK

Vladislav Kremenevsk... in Qt
Хеееелпуйте, плиииииз))
Есть класс My_Server в котором вектор QVector <QTcpSocket *> sockets

При новом подключении создаю новый поток и уже в нем создаю новый сокет

Так вот, можно ли как-то запихать все новые сокеты, в вектор сервера? Они же просто создаются все в рахных потоках, а вектор тож в другом


Хочу просто сделать чтобы когда один из сокетов имитурет сигнал readyRead я мог вязть с него инфу и раскинуть по всем сокетам, которые подключились к серверу,

идея вообще была такая:

connect(newThread, &MyThread::ReadyRead, [&](QByteArray arr){
       QTextStream T(arr);
       QString text = T.readAll();
       for(auto socket : sockets){
           QTextStream tmp(socket);
           tmp << text;
       }
   });

Но получается лажа, тк в векторе вообще вроде не могут хранится сокеты с разных потоков.......

Если у кого есть другие варианты, предложения реализации, пишите))) Хочк сделать чат на тсп сервере


снизу код баганутый
Заранее спасибо
источник

IM

Ian Mcewan in Qt
Vladislav Kremenevskiy
Хеееелпуйте, плиииииз))
Есть класс My_Server в котором вектор QVector <QTcpSocket *> sockets

При новом подключении создаю новый поток и уже в нем создаю новый сокет

Так вот, можно ли как-то запихать все новые сокеты, в вектор сервера? Они же просто создаются все в рахных потоках, а вектор тож в другом


Хочу просто сделать чтобы когда один из сокетов имитурет сигнал readyRead я мог вязть с него инфу и раскинуть по всем сокетам, которые подключились к серверу,

идея вообще была такая:

connect(newThread, &MyThread::ReadyRead, [&](QByteArray arr){
       QTextStream T(arr);
       QString text = T.readAll();
       for(auto socket : sockets){
           QTextStream tmp(socket);
           tmp << text;
       }
   });

Но получается лажа, тк в векторе вообще вроде не могут хранится сокеты с разных потоков.......

Если у кого есть другие варианты, предложения реализации, пишите))) Хочк сделать чат на тсп сервере


снизу код баганутый
Заранее спасибо
Мне кажется для чата следует использовать UDP
источник

IM

Ian Mcewan in Qt
Vladislav Kremenevskiy
Хеееелпуйте, плиииииз))
Есть класс My_Server в котором вектор QVector <QTcpSocket *> sockets

При новом подключении создаю новый поток и уже в нем создаю новый сокет

Так вот, можно ли как-то запихать все новые сокеты, в вектор сервера? Они же просто создаются все в рахных потоках, а вектор тож в другом


Хочу просто сделать чтобы когда один из сокетов имитурет сигнал readyRead я мог вязть с него инфу и раскинуть по всем сокетам, которые подключились к серверу,

идея вообще была такая:

connect(newThread, &MyThread::ReadyRead, [&](QByteArray arr){
       QTextStream T(arr);
       QString text = T.readAll();
       for(auto socket : sockets){
           QTextStream tmp(socket);
           tmp << text;
       }
   });

Но получается лажа, тк в векторе вообще вроде не могут хранится сокеты с разных потоков.......

Если у кого есть другие варианты, предложения реализации, пишите))) Хочк сделать чат на тсп сервере


снизу код баганутый
Заранее спасибо
источник

M

Minmaxminor in Qt
Denis K
интересно, а текстом все то же самое есть... капец, видео на полчаса, информации на две страницы
источник

VK

Vladislav Kremenevsk... in Qt
Ian Mcewan
Мне кажется для чата следует использовать UDP
Нуууууу, насколько я знаю, юдп чаще используется для бродкаста, мультиплеера, когда не обязательно, чтобы клиент получил все пакеты, или не смертельно, если часть из них пропадут.

Он более бвстрый, за счет того что ack не послывается.
я могу ошибаться, но мессенджер, скорее, ппишется на тсп чтобы быть увереным, что все данные в точности дайдут до получаталя
источник

VK

Vladislav Kremenevsk... in Qt
А тут он не многопоточный, у меня же трабла в том, что не могк сделать через многопоточность серв
источник

IM

Ian Mcewan in Qt
Зачем в чате многопоточность? Вот тут больше 1000 участников и представь на каждого поток
источник

AU

Abu Umar in Qt
Интересный получается сервер нужен только лишь для этого чата
источник

VK

Vladislav Kremenevsk... in Qt
Ian Mcewan
Зачем в чате многопоточность? Вот тут больше 1000 участников и представь на каждого поток
Чтобы каждый незавсимо от других существовал и выполнял свою работу, а то один ляжет, и лягут все
источник

VK

Vladislav Kremenevsk... in Qt
Может, еще кто подскажет что за ошибки и как фиксить?((( в дебаге просто ерор, в выпуске и профилировании не видит QThread
источник

VK

Vladislav Kremenevsk... in Qt
источник

VK

Vladislav Kremenevsk... in Qt
источник

EG

EvgenII Gudkov in Qt
Попробуй перед public вписать макрос Q_Object
источник

VK

Vladislav Kremenevsk... in Qt
EvgenII Gudkov
Попробуй перед public вписать макрос Q_Object
также
источник

EG

EvgenII Gudkov in Qt
А если сделать clean и rebuild?
источник

VK

Vladislav Kremenevsk... in Qt
то же самое
источник

IM

Ian Mcewan in Qt
удали qmake.stash
источник

IM

Ian Mcewan in Qt
после run() напиши override
источник

VK

Vladislav Kremenevsk... in Qt
Ian Mcewan
удали qmake.stash
это папка? не вижу
источник