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)函数实现。
附:读数据的函数
voidTcpClient::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())); } }