一. QUdpSocket
1、UDP是未连接、不可靠的数据报传输协议。
2、套接字作为输入输出设备,QUdpSocket可以调用writeDatagram ()和readDatagram () )对套接字进行读写。 每次数据报写入完成时,都会释放bytesWritten ()信号。
3、QUdpSocket在阅读前调用bind ()函数进行绑定。 如果只是写的话,就没有必要绑定。
4、如果数据报可被读取,则QUdpSocket输出readRead )信号,并定义与该信号相关联的时隙函数,从而读取数据。 在这种情况下,hasPendingDatagrams ()也返回true。 pendingDatagramSize ) )获取数据报的长度,并可用于调用读取函数读取数据。
void Server:initSocket () UDPsocket=newqudpsocket ) this ); UDP套接字绑定(qhostaddress :3360 localhost,7755; 连接(UDP套接字,信号(就绪读取),this,插槽(冗馀数据) ); } voidserver :3360 readpendingdatagrams () while (UDP socket-haspendingdatagrams ) ) { q字节数据; datagram.resize (UDP套接字- pendingdatagramsize (); qhostaddress发送器; quint 16发送器端口; UDP套接字- read datagram (datagram.data (,datagram.size )、sender、senderPort ); 处理sthedatagram; }
二. QTcpSocket
1、TCP协议是面向连接的可靠传输协议
2、使用QTcpSocket前,调用connectToHost ()与目标主机建立连接,数据传输完成后调用disconnectFromHost ) )断开连接。 连接建立后将发送“已连接”信号,连接断开时将发送“已断开”信号。
3、有可读数据时,发出readyRead ()信号,byteAvailable () )函数可以获取可读字节数。
4、可以调用write (和read )函数读写套接字。
5、服务器编程时,一个服务器可能连接到多个客户端,此时可以调用setSocketDescriptor ()协议设置套接字描述符。
6,abort ) )函数类似于disconnectFromHost ) )函数的功能。 abort ) )立即关闭套接字并丢弃可读字节。