QLocalSocket又是个什么玩意?

    之前认识了QTcpSocket、QUdpSocket和QWebSocket,现在又来了个QLocalSocket。Qt的socket团兄弟真多。那么QLocalSocket又是个什么玩意?顾名思义就是本地套接字。名字包含两个关键词“本地”和“套接字”,可以看出就是用来本地通信的。本地通信那基本上就是用在进程间通信了。

   QLocalSocket的使用和Tcp很相似,需要使用两个类。一个是QLocalServer,另一个就是QLocalSocket。总结其步骤如下:

    1.QLocalServer启动监听(使用listen,和tcp不同的是它监听的是服务名和不是端口).

    2.QLocalSocket连接到服务(使用connectToServer,参数就服务端监听的服务名)。

    3.QLocalServer收到连接时创建一个QLocalSocket和客户端愉快的聊天(使用nextPendingConnection获得这个socket)。

    

    举例:

    用QtCreator创建两个基于QWidget的项目,一个作为服务端,另一个作为客户端。用UI设计师在服务端程序的界面上拖一个listWidget,用来显示客户端连接的时间。在客户端上拖一个textEdit,用来显示服务端发给客户端的问候信息。

   服务端主要代码:

   1.创建QLocalServer对象,并开启监听。

image.png


   创建server对象后,还需要连接newConnection信号。当有新连接时server会触发该信号。

  2.在newConnection对应的槽函数中处理新连接。

image.png


 客户端主要代码:

  1. 创建QLocalSocket对象,连接到服务端。

   image.png


    创建socket对象后,连接其readyRead信号。当有消息时会触发该信号。

   2.在readyRead对应的槽函数中处理收到的数据。

image.png

运行效果:

blob.png



演示站
上一篇:QUdpSocket初次见面多多关照
下一篇:Qt多线程第一课QThread

发表评论

评论列表

2019-02-18 11:59:27

这个和tcpSocket的用法感觉差不多