目的
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(); //创建socket
connect(tcpSocket, SIGNAL(connected()),
this, SLOT(onClientConnected()));
onClientConnected();//
connect(tcpSocket, SIGNAL(disconnected()),
this, SLOT(onClientDisconnected()));
connect(tcpSocket,SIGNAL(stateChanged(QAbstractSocket::SocketState))
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » QT的TCP服务端与多客户端通信
发表评论 取消回复