网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月06日漏签0天
qt吧 关注:49,922贴子:160,069
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回qt吧
>0< 加载中...

Qt 网络协议——大鸟勿进啦

  • 只看楼主
  • 收藏

  • 回复
  • ZHANGtaohander
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Qt 网络协议——大鸟勿进啦
主要原理:socket通信 转http://www.cnblogs.com/dolphinX/p/3460545.html,这篇博客有简单的socket介绍
主要实现:实现非阻塞式的socket
两种方法:
1.利用winsock 类库中的 Socket协议,使用select()函数,但是我没搞太懂,之前使用创建线程实现了accept()的非阻塞连接,
但是,感觉太麻烦了,所以中途放弃了
2.利用qtcpsocket qtcpsocket 类库中的协议,这里边非常简单就可以实现非阻塞Socket,主要是通过connect()建立槽,我是这么理解的
转http://blog.csdn.net/ac_huang/article/details/23870323,这篇博客中有介绍
附上我自己的源码,仅仅实现了连接,发送接收数据:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <qtcpsocket.h>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
void initClient();
private slots:
void disconnectedSlot();
void readyReadSlot();
void on_pushButton_clicked();
private:
Ui::Widget *ui;
QTcpSocket * m_tcpSocket;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::initClient()
{
m_tcpSocket = new QTcpSocket(this);
QString ipAddress = tr("192.168.13.14");
quint16 port = 6000;
m_tcpSocket->connectToHost("192.168.13.14",port,QTcpSocket::ReadWrite);
connect(m_tcpSocket, SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
connect(m_tcpSocket, SIGNAL(disconnected()), this, SLOT(disconnectedSlot()));
}
void Widget::disconnectedSlot()
{
m_tcpSocket->close();
}
void Widget::on_pushButton_clicked()
{
QString str = ui->textEdit->toPlainText();
m_tcpSocket->write(str.toLatin1().data(), str.length());
}
void Widget::readyReadSlot()
{
QTcpSocket * newtcpsocket = static_cast<QTcpSocket*>(this->sender());
QByteArray message = newtcpsocket->readAll();
ui->textEdit_2->append(message);
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回qt吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示