嵌入式开发-课件-第7章、Qt网络编程.pdfVIP

  • 10
  • 0
  • 约9.73万字
  • 约 70页
  • 2018-05-30 发布于广东
  • 举报
入式学院—华清远见旗下品牌: 《Qt4 图形设计与 入式开发》 《Qt4 图形设计与 入式开发》——第7 章、Qt 网络编程 第7 章 Qt 网络编程 入式学院—华清远见旗下品牌: 《Qt4 图形设计与 入式开发》——第7 章、Qt 网络编程 在Linux 下进行网络编程,使用的是BSD 提供的socket 套接字,但它不方便使 用。在 Windows 下,由于 Qt 提供了类似于 MFC 的高层的类,使用 MFC 为编写 Window 32 的应用程序提供了很方便的操作,为程序员新手编写网络程序提供了方 便。 Qt 提供了socket 的支持,它采用API 形式的封装,让程序员在设计程序的时候 变得更加的简单,程序员不需要接触底层的代码就可以对socket 进行操作。 Qt 中提供了有关套接字的操作的类。 (1)QServerSocket 。 (2 )QSocket 。 (3 )QSocketDevice 。 (4 )QSocketNotifier 。 下面看看如何使用 Qt 进行网络编程,我们用一个简单的服务器和一个客户程 序来说明,同时我们还使用TCP 和UDP 双重协议实现这个程序。 QSocketDevice *MUReceiveSocket; // 接字对象 QSocketNotifier *MSocketNofifier; // 接字监听对象 QHostAddress MyAddress; // 用来接收本地的地址 QString FakeAddress; // 设置一个假冒的地址 FakeAddress=get_eth1_ip (); // 获得网卡的地址 MyAddress.setAddress(FakeAddress); MuReceiveSocket-bind (MyAddress,Port); // 设置假冒的地址 MSocketNotifier=new QSocketNotifier(MuReceiveSocket-socket(),QSocketNotifier:: Read,0,MSocketNotifier); 在Linux 下进行网络编程,我们可以使用Linux 提供的统一的套接字接口。但是 这种方法涉及太多的结构体,例如,IP 地址、端口转换等,不熟练的人往往容易犯这 样或那样的错误。 Qt 中提供的socket 完全使用了类的封装机制,使用户不需要接触底层的各种结 构体操作。而且它采用Qt 本身的signal-slot 机制,使编写的程序更容易理解。 Qt 提供了4 个与套按字相关的类,如下所示。 (1)QServerSocket:TCP-basedserver 。 (2 )QSocket:BufferedTCPconnection。 (3 )QSocketDevice:Platform-independentlow-levelsocketAPI 。 (4 )QSocketNotifier :Supportforsocketcallbacks 。 下面介绍使用Qt 进行网络编程。我们使用一个简单的 C/S 模式网络程序说明 如何使用Qt 中的套接字。同时我们用TCP 和UDP 两种协议实现这个程序(该程序 客户端与服务端各向对方发送一个字符口串“abc ”)。 1 UDP 实现 UDP 是不连接协议,没有客户端与服务端的概念。 (1)建立套接字相关对象。 入式学院—华清远见旗下品牌: 《Qt4 图形设计与 入式开发》——第7 章、Qt 网络编程 QSocketDevice*MUReceiveSocket; // 接字对象 QSocketNotifier*MSocketNotifier; // 接字监听对象 (2 )初始化套接字相关对象。 MUReceiveSocket=new QS

文档评论(0)

1亿VIP精品文档

相关文档