Unsolved qApp->quit()退出前接收不到任何消息
-
我设计的软件是分为client.exe和service.exe两个程序,通过tcp通信;client.exe是带有界面的程序,service.exe是不带界面,默认后台运行的;
我想实现当用户关闭client.exe的时候,先关闭client.exe,然后再关闭service.exe,所以关闭client.exe前会通过tcp发送一条"msg:quit"字符串消息给service.exe,client.exe自身quit掉,service.exe接收到这个消息后再quit掉;
奇怪的是,service.exe一直收不到这个消息(service.exe在client.exe不退出时候能够正常接受其他消息),当我取消掉client.exe的自身quit操作后,service.exe能够接收到这个"msg:quit"消息,我怀疑client.exe中tcp发送和后面qApp->quit()是不是冲突啊,有知道的吗?
-
发出消息后不表示消息就被service接收了,有可能数据还在缓存里面,quit退出太快,文件描述符被系统回收,对方自然就收不到了,可以改下设计实现,客户端在收到对方响应后再退出,service检测到客户端进程已退出后再退出