QT 网络通信(TCP/IP)
服务端:
一、监听新的客户端接入(QTcpServer)
重写函数 incomingConnection(qintptr socketDescriptor)
二、服务端每个客户的监听(QTcpSocket 完成三件事1、监听是否有数据传来。2、监听连接是否中断。3、写数据)
1、数据传来时有 readyRead() 信号。将 都数据函数和 此信号关联。
2、连接中断时有 disconnected() 信号。将 中断时处理的事件函数与此信号关联。
3、write(msg.toLatinl(),length) 函数实现。
客户端:
一、客户端完成5件事(QTcpSocket 1、连接服务器。2、监听连接服务器是否成功。3、监听是否有数据传来。4、监听连接是否中断。5、写数据)
1、connectToHost(ip,port); 此函数完成连接服务器。
2、connected() 连接服务器成功时此信号发出。
3、readyRead() 有数据传来时此信号发出。
4、disconnected() 连接中断时此信号发出。
5、write(msg.toLatinl(),length) 函数实现。
附:读数据的函数
void TcpClient::dataReceived() { while(tcpSocket->bytesAvailable()>0) { QByteArray datagram; datagram.resize(tcpSocket->bytesAvailable()); tcpSocket->read(datagram.data(),datagram.size()); QString msg=datagram.data(); //contentListWidget->addItem(msg.left(datagram.size())); } }