欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > QT的TCP服务端与多客户端通信

QT的TCP服务端与多客户端通信

2024/10/26 4:25:40 来源:https://blog.csdn.net/maokexu123/article/details/139960074  浏览:    关键词:QT的TCP服务端与多客户端通信

目的

TCP通信可以说是最基础的东西了,也是面试经常问的问题,记得10年前,面试浪潮时,就是问的TCP连接的过程。
时间长了不用,感觉一些东西模糊了,基础的东西还是需要清晰的,而且,现在是QT的TCP,用法也有一些自己的特点。
这里主要说的就是服务端与多客户端的通信,这也是非常常用的一种模式。
先说说基本步骤:
服务器端编程的步骤:
1:加载套接字库,创建套接字;
2:绑定套接字到一个IP地址和一个端口上(bind());
3:将套接字设置为监听模式等待连接请求(listen());
4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());
5:用返回的套接字和客户端进行通信(send()/recv());
6:返回,等待另一连接请求;
7:关闭套接字,关闭加载的套接字库。
客户端编程的步骤:
1:加载套接字库,创建套接字;
2:向服务器发出连接请求(connect());
3:和服务器端进行通信(send()/recv());
4:关闭套接字,关闭加载的套接字库。

情况

就是实现服务端与多个客户端的通信:

server端关键代码:

......
tcpServer=new QTcpServer(this);connect(tcpServer,SIGNAL(newConnection()),this,SLOT(onNewConnection()));
......
void MainWindow::onNewConnection()
{
//    ui->plainTextEdit->appendPlainText("有新连接");tcpSocket = tcpServer->nextPendingConnection(); //创建socketconnect(tcpSocket, SIGNAL(connected()),this, SLOT(onClientConnected()));onClientConnected();//connect(tcpSocket, SIGNAL(disconnected()),this, SLOT(onClientDisconnected()));connect(tcpSocket,SIGNAL(stateChanged(QAbstractSocket::SocketState))

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com