QUdpSocket和QTcpSocket的使用
2015-08-05 09:17
661 查看
一、QUdpSocket
1、UDP是一种基于无连接的、不可靠的数据报传输协议。
2、套接字可以当作一种输入输出设备,QUdpSocket可以调用writeDatagram()和readDatagram()对套接字进行读写。每当一次数据报写入完成后会释放bytesWritten()信号。
3、QUdpSocket在读之前要先调用bind()函数进行绑定,如果仅仅只是写的话则无需绑定。
4、当有数据报可读时,QUdpSocket会发出readRead()信号,可以通过定义关联该信号的槽函数,对数据进行读取。此时hasPendingDatagrams()也会返回true,pendingDatagramSize()可以用于获取数据报长度,然后调用读函数进行数据的读取。
二、QTcpSocket
1、TCP协议是面向连接的、可靠的传输协议
2、QTcpSocket在使用之前,要先调用connectToHost()和目的主机建立连接,数据传输结束后要调用disconnectFromHost()断开连接。连接建立之后会发送connected()信号,连接断开之后会发送disconnected()信号。
3、当有数据可读时会发出readyRead()信号,可以通过byteAvailable()函数获取可读取的字节数。
4、可以调用write()和read()函数对套接字进行读写。
5、服务器编程时,一个服务器可能会连接到好几个客户端,此时可以调用setSocketDescriptor()协议设置套接字描述符。
6、abort()函数,和disconnectFromHost()函数功能类似,abort()会立即关闭套接字,并丢弃可读取的字节。
1、UDP是一种基于无连接的、不可靠的数据报传输协议。
2、套接字可以当作一种输入输出设备,QUdpSocket可以调用writeDatagram()和readDatagram()对套接字进行读写。每当一次数据报写入完成后会释放bytesWritten()信号。
3、QUdpSocket在读之前要先调用bind()函数进行绑定,如果仅仅只是写的话则无需绑定。
4、当有数据报可读时,QUdpSocket会发出readRead()信号,可以通过定义关联该信号的槽函数,对数据进行读取。此时hasPendingDatagrams()也会返回true,pendingDatagramSize()可以用于获取数据报长度,然后调用读函数进行数据的读取。
void Server::initSocket() { udpSocket = new QUdpSocket(this); udpSocket->bind(QHostAddress::LocalHost, 7755); connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); } void Server::readPendingDatagrams() { while (udpSocket->hasPendingDatagrams()) { QByteArray datagram; datagram.resize(udpSocket->pendingDatagramSize()); QHostAddress sender; quint16 senderPort; udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); processTheDatagram(datagram); } }
二、QTcpSocket
1、TCP协议是面向连接的、可靠的传输协议
2、QTcpSocket在使用之前,要先调用connectToHost()和目的主机建立连接,数据传输结束后要调用disconnectFromHost()断开连接。连接建立之后会发送connected()信号,连接断开之后会发送disconnected()信号。
3、当有数据可读时会发出readyRead()信号,可以通过byteAvailable()函数获取可读取的字节数。
4、可以调用write()和read()函数对套接字进行读写。
5、服务器编程时,一个服务器可能会连接到好几个客户端,此时可以调用setSocketDescriptor()协议设置套接字描述符。
6、abort()函数,和disconnectFromHost()函数功能类似,abort()会立即关闭套接字,并丢弃可读取的字节。
相关文章推荐
- Runtime获取网络状态
- httpClient实现获取网络信息
- iOS 网络编程socket NSSteam的使用
- RTP RTSP RTCP的区别
- 计算机网络 三次握手 四次挥手
- 利用tcpdump抓包工具监控TCP连接的三次握手和断开连接的四次挥手
- 2015计算机类保研夏令营感悟2(中科院计算机网络信息中心)
- TCP要点总结
- iOS应用架构谈 网络层设计方案
- 黑马程序员——网络编程
- HTTP请求返回状态码的不同含义
- HTTP请求头详解
- Android复习笔记(11) -网络编程相关
- 开学季,送给新生入学的礼物‘校园网络TV’
- VIEWGOOD(远古)网络电视台解决方案
- dSploitzANTI渗透教程之HTTP服务重定向地址
- 网络流入门总结(EK算法)
- C#网络编程《三》
- 网络tcp/ip资料
- Android 网络请求框架总结(二)