客户端:
我们先在头文件中
在头文件中添加#include <QTcpSocket>
声明一个空的QTcpSocket *tcpsocket=nullptr;
我们在.cpp文件的初始化位置new 一个QTcpSocket()对象;
tcpsocket = new QTcpSocket();
通过以下代码指定需要连接的服务器的IP和端口
tcpsocket->connectToHost(ip, 9999);
进行连接并等待,这里是出于堵塞状态,连接成功则释放,如果连接不成功则等待5s的等待时间
如果不写参数默认应该是等待3S,参数的单位是ms
if( tcpsocket->waitForConnected(5000)){
//如果连接成功可进行的操作
}
我们可以通过if(tcpsocket->state() == QTcpSocket::ConnectedState)
来判断用户是否已经连接
服务器端:
在头文件中的操作:
#include "server.h"
Server::Server(quint16 port,QObject *parent) : QObject(parent)
{
// 定义一个server
server = new QTcpServer();
// 监听任意地址访问port
server->listen(QHostAddress::Any,port);
// 绑定一个信号槽,newConnection被触发,将调用connect函数
connect(server,&QTcpServer::newConnection,this,&Server::connnect);
}
// 接收新上线的socket
void Server::connnect(){
QTcpSocket *socket = server->nextPendingConnection();//通过这句话我们将接收到的客户端进行识别,实现多客户端连接
TcpClientSocket *tmpsocket = new TcpClientSocket(socket);
qDebug()<<tmpsocket;
}