网络与通信创新.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络与通信创新.ppt

涉及到网络模块(QtNetwork Module)中的 QHostInfo QHostAddress QNetworkInterface和QNetworkAddressEntry等几个类。 QHostInfo类的localHostName类来获取本机的计算机名 应用QHostInfo类的fromName()函数,使用上面获得的主机名为参数,来获取本机的信息。 然后再利用QHostInfo类的addresses()函数,获取本机的所有IP地址信息。 以后要使用的IP地址都是用这个方法获得的,所以这个一定要掌握 通过QNetworkInterface类来获取本机的IP地址和网络接口信息。网络接口信息中也提供了硬件地址信息。 QNetworkInterface类提供了程序所运行时的主机的IP地址和网络接口信息的列表。 在每一个网络接口信息中都包含了0个或多个IP地址,而每一个IP地址又包含了和它相关的子网掩码和广播地址,它们三者被封装在一个QNetworkAddressEntry对象中。 在Qt中提供了QUdpSocket 类来进行UDP数据报(datagrams)的发送和接收。 Socket,也就是常说的“套接字”。 Socket简单地说,就是一个IP地址加一个port端口。 要传输数据,就要知道往哪个机子上传送,而IP地址确定了一台主机,但是这台机子上可能运行着各种各样的网络程序,我们要往哪个程序中发送呢?这时就要使用一个端口来指定UDP程序。所以说,Socket指明了数据报传输的路径。 例程:服务器端 使用QUdpSocket类的writeDatagram()函数来发送数据报, 函数有四个参数,分别是数据报的内容,数据报的大小,主机地址和端口号。 对于数据报的大小,它根据平台的不同而不同,但是这里建议不要超过512字节。 这里我们使用了广播地址QHostAddress::Broadcast,这样就可以同时给网络中所有的主机发送数据报了。 对于端口号,它是可以随意指定的,但是一般1024以下的端口号通常属于保留端口号,所以我们最好使用大于1024的端口,最大为65535。我们这里使用了5555这个端口号,一定要注意,在下面要讲的服务器程序中,也要使用相同的端口号。 例程:客户机端 Client端构造函数中将socket绑定到5555端口,这个端口就是上面发送端设置的端口,二者必须一样才能保证接收到数据报。 当socket发现有数据报到达时就会发出readyRead()信号,所以我们将其和我们的数据报处理函数相关联。 使用QUdpSocket类的readDatagram(data, size)函数来接收数据报 TCP协议的程序使用的是客户端/服务器模式,在Qt中提供了QTcpSocket类来编写TCP数据传输,使用QTcpServer类编写服务器端程序。 我们在服务器端进行端口的监听,一旦发现客户端的连接请求,就会发出newConnection()信号,我们可以关联这个信号到我们自己的槽函数,进行数据的发送。 在客户端,一旦有数据到来就会发出readyRead()信号,我们可以关联此信号,进行数据的接收。 QHttp类实现Http协议的客户端。它提供各种函数用来执行最常用的Http请求。 QHttp是异步工作的。当我们调用一个函数(像get(), post() ),函数立即返回,但数据传输却在控制传回到Qt的事件循环中时才产生。这保证了当执行http命令时用户界面可以保持响应。 QHttp QHttp提供各种操作。比如:setHost(), get(), post(), and head()。 如果一个站点要求认证,我们可以使用setUser() 方法来提供一个用户名和密码。 QHttp可以使用令一个socket来代替QHttp内部使用的QTcpSocket。这使得使用安全套接字类 QtSslSocket成为可能。更多关于安全套接字的资料请登录Trolltech站点。 如果需要发送一系列name =value 对,可以使用post()方法: http.setHost(); http.post(/cgi/somescript.py, x=200y=320, file) 可以使用字符串或一个打开的QIODevice(比如:QFile)来传递数据。 当QHttp开始执行一个请求时,它触发requestStarted(int) 信号。 当QHttp执行完一个请求时,它触发requestFinished(int, bool)信号。 int参数标志这个请求的ID号。如果我们感兴趣于某些http请求,我们可以存储这个ID号,以获得更多的回传细节。 大多数情况下,我们更关注一系列http请求是否成功执

文档评论(0)

w447750 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档