wordpress网站反应慢,自己如何制作动漫短视频,wordpress 发布站,文件服务器怎么搭建1、基础概念 1.1 TCP/UDP TCP 是一种面向连接的传输层协议#xff0c;它能提供高可靠性通信(即数据无误、数据无丢失、 数据无失序、数据无重复到达的通信) 适用情况#xff1a; 1.SN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议 2、适合于对传输质量要求较…1、基础概念 1.1 TCP/UDP TCP 是一种面向连接的传输层协议它能提供高可靠性通信(即数据无误、数据无丢失、 数据无失序、数据无重复到达的通信) 适用情况 1.SN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议 2、适合于对传输质量要求较高以及传输大量数据的通信。 高可靠的原因 三次握手四次挥手序列号和应答号机制超时/错误 重传机制 UDPUser Datagram Protocol用户数据报文协议是不可靠的无连接的协议。 在数据发送前因为不需要进行连接所以可以进行高效率的数据传输。 即时性 1、发送小尺寸数据如对DNS服务器进行IP地址查询时 2、QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议 3、流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输 1.2 IP地址与端口号 IP地址 1、IP地址是internet中的主机标识 2、internet中的主机要与别的机器通信必须具有一个IP地址 3、IP地址为32位IPv4或者128位IPv6 4、表示形式常用点分形式如202.38.64.10最后都会转换为一个32位的无符号整数。 五类A B C D E 端口号 1、为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理使用端口号来区分。 2、TCP端口号与UDP端口号独立。 3、端口用两个字节来表示2byte 4、众所周知端口1~10231~255之间为众所周知端口256~1023端口通常由UNIX系统占用 已登记端口1024~49151选1000以上10000以下 动态或私有端口49152~65535 --固定某些服务使用- 非豹子号端口号本次授课使用8887端口号 2、准备工作 与数据库编程一样Qt的网络功能需要在.pro项目配置文件中添加对应模块。network模块。 网络通信当中主要用到两个类 QTcpServer 表示一个基于TCP的服务器需要注意的是此类直接继承了QObject类不继承QIODevice类因此不具备任何IO能力。 QTcpSocket 表示一个基于TCP的Socket连接间接继承了QIODevice类因此使用此类对象进行IO读写。 3、相关函数 // 构造函数堆内存开辟
QTcpServer:: QTcpServer(QObject * parent 0)// 开启监听服务等待客户端发起连接
// 参数1监听来源那个网段的ip地址默认值不加任何限制
// 参数2服务器所占用的端口号。默认值0表示随机选取
bool QTcpServer:: listen(const QHostAddress address QHostAddress::Any, quint16 port 0)// 查看当前是否在监听
bool QTcpServer:: isListening() const// 关闭监听服务
void QTcpServer:: close()编写客户端 // 构造函数 堆区创建
QTcpSocket:: QTcpSocket(QObject * parent 0)// 连接到服务器
// 参数1服务器的IP地址
// 参数2服务器的端口号
// 参数3打开模式
void QAbstractSocket:: connectToHost(const QString hostName, quint16 port, OpenMode openMode ReadWrite)[virtual]// 每当有新的连接可用是就会发射此信号
void QTcpServer:: newConnection() [signal]// 返回与哭护短连接的QTcpSocket对象
QTcpSocket * QTcpServer:: nextPendingConnection()// 获取对面客户端的IP地址
// 返回值为IP地址封装类
QHostAddress QAbstractSocket:: peerAddress() const// 返回值对面的客户端端口号
quint16 QAbstractSocket:: peerPort() const// 构造函数
// 参数是Qt的读写类可以使QFile、也可以是QTcpSocket.......
QTextStream:: QTextStream(QIODevice * device)// 输出字符串内容支持链式调用
QTextStream operator(const QString string)// 有数据可读时发射
void QIODevice:: readyRead() [signal]// 读取数据参数为本次读取数据最大长度返回值为读取的字符串。
QString QTextStream:: read(qint64 maxlen)