• 4287阅读
  • 3回复

进程之间的通信目前使用了QLocalSocket和QLocalSever [复制链接]

上一主题 下一主题
离线baby1289
 

只看楼主 正序阅读 楼主  发表于: 2019-08-28
进程之间的通信目前使用了QLocalSocket和QLocalSever,目前在windows系统上测试,出现了以下问题,希望帮助分析,谢谢:
1. 客户端连接上主机后,通过调用write(字节串),然后立即flush,有些时候flush后返回false,不知道为什么?
2. 主机接收的处理在线程中进行,方式时在客户端连接成功后启动一个接收线程,用于处理接收;但是如果线程使用方式是movetoThread方式,在线程中使用bytesAviable和read(读到字符串中)进行处理,当客户端连续100ms间隔发送大量数据时,会出现“QIODevice: read call  maxsize< 0”的错误;如果线程处理方式使用的是run方式,在run中使用waitforread和bytesaviable以及read读取,常常waitforread返回假,当然并没有开readyread信号对应的槽函数
    以上两个问题,非常怪异,希望技术大拿指导,谢谢!
离线圣域天子

只看该作者 3楼 发表于: 2019-09-05
我估计楼主写的不对
离线angelus

只看该作者 2楼 发表于: 2019-09-05
我一般会在写入数据后调用写入等待,然后再flush,本机线程间通信没有测试过大量数据
离线XChinux

只看该作者 1楼 发表于: 2019-08-31
找个RPC用吧,或者用QWebSocket/QWebSocketServer也行,比底层的Socket处理起来好一些。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个