|
1Qter豆
本帖最后由 allenboy 于 2018-4-3 13:35 编辑
- qt 发数据服务器只能收到第一次的。后面的服务器就收不到了。
- 服务器用 python写的。
- 关键代码
- 开始连接
- QByteArray bytePwd = userpasswd.toLatin1();
- QByteArray bytePwdMd5 = QCryptographicHash::hash(bytePwd, QCryptographicHash::Md5);
- userpasswd=bytePwdMd5.toHex();
- tcpSocket->connectToHost(*serverIP,port);
- //int length=0;
- QString msg=username+"%"+userpasswd+"%"+login;
- if (tcpSocket->waitForConnected(1000)){
- qDebug("Connected!");
- qDebug("State:%d\n",tcpSocket->state()); // State: 3(ConnectedState)正确
- tcpSocket->write(msg.toUtf8().data(),strlen(msg.toUtf8().data()));
- qDebug("State:%d\n",tcpSocket->state());
- }
- /////////////////////////////////////////////////////检测如果有新可以读信号void Dialog::dataReceived(){
复制代码- QByteArray datagram;
- datagram.resize(tcpSocket->bytesAvailable());
- tcpSocket->read(datagram.data(),datagram.size());
- QString msg=datagram.data();
- qDebug()<<msg;
- //通过服务端确认
- if(msg=="ok"){
- myCCmyCharDialog = new CCmyCharDialog();
- //设置
- myCCmyCharDialog->setQTcpSocket(this->tcpSocket);
- //ip
- myCCmyCharDialog->setAddandport(this->port,this->serverIP);
- myCCmyCharDialog->set(this->username,this->userpasswd);
- //绑定关闭信号与槽
- connect(myCCmyCharDialog,SIGNAL(myclose()),this,SLOT(ccmyclose()));
- myCCmyCharDialog->show();
- this->hide();
- QString msg=tr("aaaaaaannnnnnnnnnnnnnnnnaaaaaaaaa")+"%"+tr("aaaaaaccccccccccccccccccccaaaaa")+"%"+login;
- tcpSocket->write(msg.toUtf8().data(),strlen(msg.toUtf8().data()));
- }
复制代码 服务器就收不到下面这个了
QString msg=tr("aaaaaaannnnnnnnnnnnnnnnnaaaaaaaaa")+"%"+tr("aaaaaaccccccccccccccccccccaaaaa")+"%"+login;
tcpSocket->write(msg.toUtf8().data(),strlen(msg.toUtf8().data()));
|
|