• 6905阅读
  • 2回复

[提问]QTcpServer服务器端处理客户端Socket断开事件问题 [复制链接]

上一主题 下一主题
离线hats1987
 

只看楼主 倒序阅读 楼主  发表于: 2011-02-17
最近想做个简易聊天工具,现在遇到一个问题,如果客户端QTcpSocket程序退出的话,客户端Socket指针
会产生一个disconnected()信号,这个信号可以连接一个槽函数进行处理。
但是这个disconnected()发出的信号并没有参数,槽函数不知道是哪个客户端Socket退出了,
因为我用了QMultiMap<QString,QTcpSocket*>来保存客户端的IP地址和它们的Socket指针,
如果不知道哪个客户端Socket退出的话QMultiMap<QString,QTcpSocket*>就无法删除这个退出的客户端Socket指针了。

我新写了MyTcpSocket 继承了QTcpSocket这个类,新写了disconnected(QTcpSocket*)信号,不过似乎只能在客户端使用
才有效果,服务器端退出时客户端能接收到信号,但是在服务器端程序里不起作用。
谁有办法怎样才能获取客户端断开链接时的Socket指针?
[ 此帖被hats1987在2011-02-17 15:03重新编辑 ]
Qt 5.3.2
Win XP/7:  VC2010/ VC6 /Gcc 4.9.2
离线yj_yulin

只看该作者 1楼 发表于: 2011-02-17
sender()
离线hats1987

只看该作者 2楼 发表于: 2011-02-18
还要qobject_cast来强制转化类型,多谢了。
Qt 5.3.2
Win XP/7:  VC2010/ VC6 /Gcc 4.9.2
快速回复
限100 字节
 
上一个 下一个