资源描述:
《Qt网络编程简介.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、QT之网络编程1Qt网络编程QIODeviceQAbstractSocketQFileQBufferQUdpSocketQTcpSocketQTcpServerQHostAddress类继承架构图2Qt网络编程QIODevice:是一个抽象类,为Qt中所有提供了打开、关闭、读写的等IO操作方法的类提供一个统一的接口,Qt中具备其接口的类包括QFile、QAbstractSocket、QTcpSocket、QUdpSocket、QBuffer、Qprocess等。操作函数:open(),close()read(),readAll(),read
2、Line()write()Signal:voidaboutToClose()voidbytesWritten(qint64bytes)voidreadChannelFinished()voidreadyRead()判断函数:boolatEnd()constqint64bytesAvailable()constqint64bytesToWrite()constboolcanReadLine()const同步操作函数:boolwaitForBytesWritten(intmsecs)boolwaitForReadyRead(intmsecs)3
3、Qt网络编程QAbstractSocket是一个抽象类,在QIODevice基础上,为socket提供了公共的接口。操作函数:QAbstractSocket(SocketTypesocketType,QObject*parent)voidconnectToHost(constQHostAddress&address,quint16port,OpenModeopenMode=ReadWrite)voiddisconnectFromHost()信息提取函数:QHostAddresslocalAddress()constquint16localP
4、ort()constQHostAddresspeerAddress()constquint16peerPort()constSocketStatestate()constSignal:voidstateChanged(QAbstractSocket::SocketStatesocketState)同步操作函数:boolwaitForConnected(intmsecs=30000)boolwaitForDisconnected(intmsecs=30000)4Qt网络编程QTcpSocket继承自QAbstractSocket,没有增加接口
5、。QUdpSocket继承自QAbstractSocket,增加了以下UDP特有的接口操作函数:boolbind(constQHostAddress&address,quint16port,BindModemode)qint64readDatagram(char*data,qint64maxSize,QHostAddress*address=0,quint16*port=0)qint64writeDatagram(constchar*data,qint64size,constQHostAddress&address,quint16port)
6、qint64writeDatagram(constQByteArray&datagram,constQHostAddress&host,quint16port)判断函数:boolhasPendingDatagrams()constqint64pendingDatagramSize()const5Qt网络编程QTcpServer提供了TCP监听socket功能。操作函数:boollisten(constQHostAddress&address=QHostAddress::Any,quint16port=0)setMaxPendingConne
7、ctions(intnumConnections)QTcpSocket*nextPendingConnection()判断函数:boolhasPendingConnections()constboolisListening()const信息提取函数:QHostAddressserverAddress()constquint16serverPort()constSignal:voidnewConnection()同步函数:boolwaitForNewConnection(intmsec=0,bool*timedOut=0)6Qt网络编程QHo
8、stAddress代表IP地址信息,并提供了IP地址和IP字符串相互转换的方法例如:QHostAddress::Any;QHostAddressip;ip.setAddress(