Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 10
1

Не работает QTcpSocket::readyRead

22.10.2012, 21:47. Показов 3850. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
имеется рабочий ftp клиент и необходимо написать ftp сервер
при подключении к серверу клиента
C++
1
2
3
4
5
6
void Server::incomingConnection(int handle)
{
    qDebug() << "Connecting...";
    list[handle] = new Com_socket(handle,this);
    connect(list[handle],SIGNAL(com_disconnect(int)),this,SLOT(on_com_disconnected(int)));
}
код Com_soket
C++
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
//com_socket.h
#ifndef COM_SOCKET_H
#define COM_SOCKET_H
 
#include <QObject>
#include <QTcpSocket>
#include <QString>
 
 
class Com_socket : public QObject
{
    Q_OBJECT
public:
    explicit Com_socket(int SocketDescriptor, QObject *parent = 0);
 
signals:
    void com_disconnect(int id);
 
public slots:
    void on_ready_read();
    void on_disconnected();
 
 
private:
    QTcpSocket *sok;
    int id_sok;
};
 
#endif // COM_SOCKET_H
C++
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
//com_socket.cpp
#include "com_socket.h"
 
Com_socket::Com_socket(int SocketDescriptor, QObject *parent) :
    QObject(parent)
{
    id_sok = SocketDescriptor;
    sok = new QTcpSocket(this);
    if(!sok->setSocketDescriptor(id_sok))
    {
        qDebug() << " Error binding socket";
    }
    else
    {
        qDebug() << "Command socket is created...";
    }
    connect(sok,SIGNAL(disconnected()),this,SLOT(on_disconnected()),Qt::DirectConnection);
    connect(sok,SIGNAL(readyRead()),this,SLOT(on_ready_read()),Qt::DirectConnection);
}
 
void Com_socket::on_ready_read()
{
    qDebug() << "до сюда никак не доходит";
}
 
void Com_socket::on_disconnected()
{
    sok->disconnectFromHost();
    sok->close();
    emit com_disconnect(id_sok);
    qDebug() << QString::number(id_sok) << " id is destroed";
}
почему то не срабатывает слот on_ready_read()
подскажите, что не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2012, 21:47
Ответы с готовыми решениями:

Dll + QTcpSocket + signal readyRead()
Доброго времени суток! Столкнулся со следующей проблемой! Создаю клиент-серверное приложение,...

QUdpSocket::readyRead() не работает в openSUSE 42.3
Перестал работать QUdpSocket::readyRead().. В Windows 7(64bit) работает, в openSUSE 42.3 нет....

QUdpSocket readyRead
Здравствуйте, люди добрые. Уже месяц мучаюсь с одной проблемой. Пишу курсовую работу на Qt:...

QSerialPort и readyRead
Доброго времени суток. Проблема состоит в том, как правильно переписать работу целого класса и при...

6
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
23.10.2012, 12:12 2
Попробуй Qt::QueuedConnection использовать, может из за этого.
0
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 10
23.10.2012, 13:27  [ТС] 3
Пробовал...и с параметром по умолчанию тоже не работает
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
23.10.2012, 13:36 4
Redpunk, Погоди, а где ты вообще listen вызываешь....
0
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 10
23.10.2012, 16:57  [ТС] 5
да...
более того sok->disconnected() корректно срабатывает и обрабатывается
0
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
23.10.2012, 17:19 6
ID дескриптора сокета передавайте в конструктор класса QTcpSocket
0
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 10
23.10.2012, 18:15  [ТС] 7
solar_wind, сервер нормально работает
listen тут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int Server::Start_Server(QHostAddress host, int port)
{
    if(this->listen(host,port))
    {
        qDebug() << "Server is listening...";
        return 1;
    }
    else
    {
        qDebug() << "Don't start server...";
        return 0;
    }
}
0
23.10.2012, 18:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2012, 18:15
Помогаю со студенческими работами здесь

Баг QAudioInput + readyRead
Связываю сигналом readyRead() поток из дефолтного микрофона, но сигнал не срабатывает. . Когда сам...

QAbstractSocket::readyRead и winsockets
Всем привет. Есть сервер, написанный с использованием winapi. Данные он отправляет через...

ReadyRead будит поток с задержкой?
Работаем с COM-портами... есть линия на которой висит 6 клиентов и один запросчик... запросчик...

Сигнал readyRead не запускает слот
Привет! У меня относительно большой девайс (два компа, соединенные по ком порту). Данные с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru