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

alonecool 2013-01-20 06:12:55
本人刚刚开始学习Qt,想自己实现个基于UDP的聊天程序,但有个低级问题一直不能解决,请高手指点下。
问题描述
无法初始化udpsocket。错误提示:


我在网上搜了下,目前有两种说法:
一是之前运行了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()));
}
...全文
569 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a7750150 2014-02-06
  • 打赏
  • 举报
回复
直接在项目里clean一下,清除所有项目,然后再编译
乔巴好萌 2013-01-21
  • 打赏
  • 举报
回复
同意楼上的看法 你这个没有添加对应的链接库 是编译期的错误 非运行期错误
Jonix 2013-01-21
  • 打赏
  • 举报
回复
pro 文件中,network 加了吗? QT += network
alonecool 2013-01-21
  • 打赏
  • 举报
回复
果然如Jonix所说,加了这一句就对了。寡人果然还是要多上论坛才行啊!
alonecool 2013-01-20
  • 打赏
  • 举报
回复
就没有人愿意看看吗?

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧