一 tcp/ip通信
qt
pro文件:
QT +=network
头文件:
#include<QTcpServer>
#include<QTcpSocket>
vsqt
项目右建选择属性然后接下来的操作如图:
头文件:
#include <QtNetwork/QTcpSocket>
#include <QtNetwork/QTcpServer>
服务器代码:
QTcpServer *m_s=new QTcpServer(this);
QTcpSocket* tcp;
QString DuanKouHao = "6666";//端口号
unsigned short port = DuanKouHao.toUShort();//转化端口号
m_s->listen(QHostAddress::Any, port);//设置端口号
connect(m_s, &QTcpServer::newConnection, this, [&]() {
tcp = m_s->nextPendingConnection();
connect(tcp, &QTcpSocket::readyRead, this, [=] {
QByteArray data = tcp->readAll();//获取的消息
});//窗口客户端是否发送消息过来
});//窗口是否有客户端连接操函数
QString XiaoXi= "哈哈哈";//消息发送
tcp->write(XiaoXi.toUtf8());//消息发送
客户端代码:
//----------------------------基本操作------------------------//
QTcpSocket *tcp=new QTcpSocket(this);
QString DuanKouHao = "6666";//要连接服务器的端口号
unsigned short port = DuanKouHao.toUShort();//转化端口号正确的类型
QString ip="192.168.110.119";//服务器ip
tcp->connectToHost(QHostAddress(ip),port);
//-----------------------------获取是否与服务器连接成功-----------//
connect(tcp, &QTcpSocket::connected, this, [=] {
//响应了这个信号槽说明连接成功了
});//窗口客户端
//-----------------------发送数据----------------------------//
QString XiaoXi= "哈哈哈";//消息发送
tcp->write(XiaoXi.toUtf8());//消息发送
//-----------------------接收数据-----------------------------//
connect(tcp, &QTcpSocket::readyRead, this, [=] {
QByteArray data = tcp->readAll();//获取的消息
});//窗口客户端是否发送消息过来
//----------------------获取服务器是否与自己断开----------------//
connect(tcp, &QTcpSocket::disconnected, this, [=] {
tcp->close();//关闭tcp
});//窗口客户端
//-----------------------------------------------------------//