首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt 使用udp进行socket编程的有关问题!

2013-02-18 
Qt 使用udp进行socket编程的问题!!!问题描述:无法初始化udpsocket。错误提示:我在网上搜了下,目前有两种说

Qt 使用udp进行socket编程的问题!!!

问题描述
无法初始化udpsocket。错误提示:
Qt 使用udp进行socket编程的有关问题!

我在网上搜了下,目前有两种说法:
一是之前运行了Qt的程序没有正常关闭,再运行就会提示这个错误——这个已经排除,我重启Qt ctreator后依然会报这个错误。
二是说我有头文件没有添加。
我include的头文件如下:
chat.cpp中:


#include "chat.h"

chat.h中:

#include "main.h"
#include <QGridLayout>
#include <QtNetwork/QUdpSocket>
#include <QtNetwork/QHostAddress>

main.h中:

#include <QWidget>
#include <QLineEdit>
#include <QTextEdit>
#include <QLabel>
#include <QPushButton>
#include <QTextCodec>
#include <QString>
#include <QMessageBox>
#include <QCloseEvent>
#include <QDebug>
#include <QTime>


顺便求教我在构造函数中调用成员方法来初始化socket这样好吗?


//Chat类的构造函数
Chat::Chat(QWidget *parent)
    : QWidget(parent)
{
    qDebug() << "enter Chat constructor!";

    chatLayout = new QGridLayout;

    strMsg = codec->toUnicode("对方");
    QLabel *clientID = new QLabel(strMsg);
    strMsg = codec->toUnicode("我");
    QLabel *myID = new QLabel(strMsg);

    remoteMsg = new QTextEdit;
    localMsg = new QTextEdit;

    strBtn = codec->toUnicode("发送");
    sendBtn = new QPushButton(strBtn);



    //关联按钮、信号和槽;
    connect(sendBtn, SIGNAL(clicked()), this, SLOT(on_sendMsg()));

    //设置布局
    chatLayout->addWidget(clientID,0,0);
    chatLayout->addWidget(remoteMsg,1,0);
    chatLayout->addWidget(myID,2,0);
    chatLayout->addWidget(localMsg,3,0);
    chatLayout->addWidget(sendBtn,3,1);

    strTitle = codec->toUnicode("聊天中");
    setWindowTitle(strTitle);
    setLayout(chatLayout);

    initSocket();
}


void Chat::initSocket()
{
    //设置网络连接
    udpSocket1 = new QUdpSocket(this);
    ip1 = new QHostAddress(strIP1);
    connect(udpSocket1, SIGNAL(readyRead()), this, SLOT(on_receiveMsg()));
}
qt socket
[解决办法]
pro 文件中,network 加了吗?
QT += network
[解决办法]
同意楼上的看法
你这个没有添加对应的链接库 
是编译期的错误 非运行期错误

热点排行