qt中利用socket编程实现简单网盘项目的时候当开启多个客户端会报此错误,然后客户端异常退出。看似是捕获鼠标的问题ui问题,实际上是下面这段代码中存在一个小问题。
uint uiPDULen = 0; m_tcpSocket.read((char*)uiPDULen, sizeof(uint));
这段代码错在了少写了一个& !!!
正确代码是:m_tcpSocket.read((char*)&uiPDULen, sizeof(uint));
read()将第一个参数中的uint类型强转为(char*)竟然合法,而且问题在于当仅仅开启一个客户端的时候和服务端能正常通信,这就导致bug不能第一时间被发现。。。