QT进行TCP网络通信:
1.TCP是C/S模式的需要建立连接的网络通信架构,建立连接需要进行三次握手,断开连接需要四次握手。
2.服务器模式:需要先创建监听套接字,通过bind函数进行ip和端口绑定,通过listen函数监听客户端的连接请求,通过accept函数处理客户端的连接请求并返回通信套接字进行通信。
3.客户端模式:相较服务器简单,只需创建通信套接字,然后通过connect函数和服务器进行连接,然后即可进行通信。
4.在QT内通过QT的一些函数将TCP通信进行封装,首先,要用到通信,QT必须先引入network模块;
在服务器通过创建对象创建QTcpServer套接字,然后通过listen函数进行IP和端口绑定和监听客户端的连接请求(将TCP的bind和listen合在一起),客户端连接成功,信号newConnection会触发,通过对应的槽函数就可以进行通信。
在客户端通过QTcpSocket创建通信套接字对象,然后通过connectToHost和服务器进行连接,然后就可以通过read,write函数进行通信。
服务器:
MyServer=new QTcpServer(this);
MyServer->listen(QHostAddress::Any,port);
connect(MyServer,&QTcpServer::newConnection,this,&Server::MySocket);
void Server::MySocket(){
socket=MyServer->nextPendingConnection(); //函数返回通信套接字
//ui->label->setText("ip:"+socket->peerAddress().toString());
//connect(socket,&QTcpSocket::readAll,this,&Server::MyRead);
}
客户端:
socket=new QTcpSocket(this);
socket->connectToHost(ip,port);标签:网络通信,函数,通信,socket,接字,客户端,QT From: https://www.cnblogs.com/yangbz2003-cn/p/17622732.html