七层参考模型应用层、表示层、会话层、传输层、网络层

七层参考模型应用层、表示层、会话层、传输层、网络层

ID:35078153

大小:174.50 KB

页数:19页

时间:2019-03-17

七层参考模型应用层、表示层、会话层、传输层、网络层_第1页
七层参考模型应用层、表示层、会话层、传输层、网络层_第2页
七层参考模型应用层、表示层、会话层、传输层、网络层_第3页
七层参考模型应用层、表示层、会话层、传输层、网络层_第4页
七层参考模型应用层、表示层、会话层、传输层、网络层_第5页
资源描述:

《七层参考模型应用层、表示层、会话层、传输层、网络层》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、网络编程,OSI(开放式系统互联参考模型)七层参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。   套接字(Socket)是网络通信的基本构建模块,又分为流式套接字(StreamSocket)和数据报套接字(DatagramSocket)两种类型的套接字。   TCP:传送控制协议(TransmissionControlProtocol),这是一种提供给用户的可靠的全双工字节流面向连接的协议。   UDP:用户数据报协议(UserDatagramProtocol),这是提供给用户进程的无连接协议,用于传送数据而不

2、执行正确性检查。   当然TCP、UDP都归属于传输层协议。   对所用的网络知识简短的介绍,下面步入正题,开始Qt套接字编程~   在TCP/IP网络中两个进程间的相互作用的主要模式是客户机/服务器模式(Client/Servermodel),是构造分布式应用程序最常用的模式。   Qt中几乎所有的QtNetwork类都是异步的,一般情况下没有必要Socket使用在多线程中。■、UDP   UDP是不可信赖的,它是基于包的协议。一些应用程序层的协议使用UDP是因为它比TCP更加小巧,数据是从一个主机到另一个主机以包的形式发送的。这里

3、没有连接到的概念,并且如果一个UDP包没有被正确交付,它不会向系统报告任何错误。   下面写一个简单的广播示例,由客户端和服务器两部分组成。//客户端发送数据voidClient::sendDatagram(){   QByteArraydatagram;   QDataStreamout(&datagram,QIODevice::WriteOnly);   out.setVersion(QDataStream::Qt_4_3);   out<

4、14;   QUdpSocketudpSocket(this);   udpSocket.writeDatagram(datagram,QHostAddress::Broadcast,1981);}   在QByteArray型局部变量datagram中构建待发送的数据包,然后通过QUdpSocket类的writeDatagram(constQByteArray&datagram,constQHostAddress&host,quint16port);函数将数据包发出。值得注意的是,这里的地址使用了QHostAddress::Broa

5、dcast值,它对应IPv4下的广播地址,如果将该值更换成单机地址(如本机地址QHostAddress::LocalHost),将变成一个普通的点对点的UDP程序。//服务器接收数据voidServer::initSocket(){   udpSocket=newQUdpSocket(this);   udpSocket->bind(1981);   connect(udpSocket,SIGNAL(readyRead()),           this,SLOT(readPendingDatagrams()));}   初始化生成

6、QUdpSocket实例,并绑定与客户端约定的端口(1981)。这里多说几句,在编写网络程序时应该使用1024以上的端口号,1024以下的端口号通常被系统保留,紧密的绑定了一些服务(如80端口是http服务、21端口是ftp服务)。voidServer::readPendingDatagrams(){   while(udpSocket->hasPendingDatagrams()){       QByteArraydatagram;       datagram.resize(udpSocket->pendingDatagramS

7、ize());       QHostAddresssender;       quint16senderPort;       udpSocket->readDatagram(datagram.data(),datagram.size(),                                &sender,&senderPort);       QDateTimedateTime;       QString name;       doubledata;       QDataStreamin(&datagram,QI

8、ODevice::ReadOnly);       in.setVersion(QDataStream::Qt_4_3);       in>>dateTime>>name>>data;   }}   接受数据函数首先调

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。