进程通信学习——QLocalSocket和QLocalServer

本文详细介绍了如何在Qt中利用QLocalSocket和QLocalServer实现服务端与客户端的双工通信过程。服务端通过监听特定连接并响应客户端的连接请求,而客户端则尝试连接服务端,双方均可发送和接收数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt中IPC之一的QLocalSocket和QLocalServer实现了单工与双工通信。在qtdemo中有例子说明,这里作自己的理解实现双工通信的过程。

服务端:

QLocalSocket*m_socket ;
///----------------------------------------------------------------------------------
//初始化Server,监听特定连接
void initServer()
{
     QLocalServer* m_server = new QLocalServer(this);//创建服务端
     bool a = connect(m_server,SIGNAL(newConnection()), this, SLOT(onNewConnection()));//连接服务端收到的连接信号,即当客户端socket调用connectToServer函数时响应
     QLocalServer::removeServer("IPCConnect");//移除服务端已有连接,保证本次监听成功
     if (!m_server->listen("IPCConnect"))//监听特定的连接
     {
         QMessageBox::warning(this,"警告","监听失败!");   
     }
}

//----------------------------------------------------------------------------------

//新链接影响槽函数,获取发送端socket,设置槽函数影响收到来自发送端socket的信号
void onNewConnection()
{
	if (m_server->hasPendingConnections())//如果服务端有一个待处理的连接
	{
		m_socket = new QLocalSocket(this);//创建一个套接字
		m_socket = m_server->nextPendingConnection();//获取连接上的套接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值