客戶端:
我們先在頭文件中
在頭文件中添加#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;
}