crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> tcp связь через dll, не работает connect в dll
Гость_Tigr_*
сообщение 7.10.2011, 8:47
Сообщение #1





Гости








    


пытаюсь через dll организовать tcp связь. однако в dll любой connect отказывается работать. Вот пример части кода в dll. При disconnected не срабатывает процедура connectionClosedByServer()
.h
//tcp client
class DLL_MAPSSHARED_EXPORT tcp_cleint : public QObject
{
    Q_OBJECT
public:

    //tcp-клиент
    QTcpSocket tcpSocket1;

    //ip адрес сервера
    QHostAddress s_address;

    //порт сервера
    int s_port;

    //соединение с сервером
    bool connect_to_server();

    //закрытие соединения с сервером
    void disconnect_to_server();

    //проверка соединения с сервером
    bool connect_to_server_bool();
...
public slots:
    void connectionClosedByServer();
...

protected:
    bool coonect_bool;
...

};


.cpp
//соединение с сервером
bool tcp_cleint::connect_to_server()
{
    tcpSocket1.connectToHost(s_address,s_port);
    connect(&tcpSocket1, SIGNAL(disconnected()),this, SLOT(connectionClosedByServer()));
    return true;//delete
}

//сигнал закрытия соединение с сервером
void tcp_cleint::connectionClosedByServer()
{
    ...
    coonect_bool = false;
    ...
}


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 7.10.2011, 17:52
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


DLL на чём написана? В какой ОС используется ? Инициализация сокетов выполнена ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Tigr_*
сообщение 10.10.2011, 3:40
Сообщение #3





Гости








    


Написана на qt creator. Используется в win xp.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Tigr_*
сообщение 10.10.2011, 4:50
Сообщение #4





Гости








    


Заработало! Необходимо сначала connect прописать, а только после этого делать соединение с сервером. т.е. необходимо поменять строчки в следующей процедуре:

.cpp
//соединение с сервером
bool tcp_cleint::connect_to_server()
{
    connect(&tcpSocket1, SIGNAL(disconnected()),this, SLOT(connectionClosedByServer()));    //сначала это
    tcpSocket1.connectToHost(s_address,s_port);                                                                  //потом это
    return true;//delete
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 11:36