qt tcp 客户端
场景:QT TCP客户端、服务端通信有关问题
QT TCP客户端、服务端通信问题
最近在做一个程序,分客户端、服务端,其间通过TCPScoket进行通信。
在客户端有一个登录界面,我想把登录信息传递给服务端,然后服务端验证登录者的身份,然后返回一个信息。
服务端相关代码
char buffer_info[1024]={0};
client->read(buffer_info,client->bytesAvailable());
QString buffer=QString(buffer_info);
if(buffer.section(',',0,0)=="0")
{
this->ID=buffer.section(',',1,1);
query.prepare("SELECT * FROM db_candidates WHERE ID=? ");//从数据库中查找是否存在该用户ID
query.bindValue(0,ID.toInt());
if(query.exec())
{
QByteArray message;
message.append("1");//如果存在返回消息“1”
client->write(message.data());
qDebug() <<"success";
}
else
;
}
客户端相关代码
this->Name=ui->lineEdit->text();
this->ID=ui->lineEdit_2->text();
this->info=QString("0,").append(this->ID);//将ID等数据传递给info进而通过client传递给服务端
client.connectToHost("127.0.0.1",5678);//发送ID到服务端
char buffer_info[1024]={0};//开始准备接收服务端回馈的消息
client.read(buffer_info,client.bytesAvailable());
QString buffer=QString(buffer_info);
qDebug()<<"success";
if(buffer.toInt()==1)//通信成功
{
infoToServer.show();
this->~candidateLogin();
//client.~Client();
}
else//通信不成功
{
ui->label_5->setVisible(false);
ui->label_6->setVisible(true);
}
纠结了很长时间了 高手多多指点哦。我是菜鸟。
------解决方案--------------------
没看明白你想问什么?
哪里不成功啊?
你抓包看了数据发过去了吗?即使没抓包,client连接服务器后 netstat -an状态是ESTABLISHED吗
QT TCP客户端、服务端通信问题
最近在做一个程序,分客户端、服务端,其间通过TCPScoket进行通信。
在客户端有一个登录界面,我想把登录信息传递给服务端,然后服务端验证登录者的身份,然后返回一个信息。
服务端相关代码
char buffer_info[1024]={0};
client->read(buffer_info,client->bytesAvailable());
QString buffer=QString(buffer_info);
if(buffer.section(',',0,0)=="0")
{
this->ID=buffer.section(',',1,1);
query.prepare("SELECT * FROM db_candidates WHERE ID=? ");//从数据库中查找是否存在该用户ID
query.bindValue(0,ID.toInt());
if(query.exec())
{
QByteArray message;
message.append("1");//如果存在返回消息“1”
client->write(message.data());
qDebug() <<"success";
}
else
;
}
客户端相关代码
this->Name=ui->lineEdit->text();
this->ID=ui->lineEdit_2->text();
this->info=QString("0,").append(this->ID);//将ID等数据传递给info进而通过client传递给服务端
client.connectToHost("127.0.0.1",5678);//发送ID到服务端
char buffer_info[1024]={0};//开始准备接收服务端回馈的消息
client.read(buffer_info,client.bytesAvailable());
QString buffer=QString(buffer_info);
qDebug()<<"success";
if(buffer.toInt()==1)//通信成功
{
infoToServer.show();
this->~candidateLogin();
//client.~Client();
}
else//通信不成功
{
ui->label_5->setVisible(false);
ui->label_6->setVisible(true);
}
纠结了很长时间了 高手多多指点哦。我是菜鸟。
------解决方案--------------------
没看明白你想问什么?
哪里不成功啊?
你抓包看了数据发过去了吗?即使没抓包,client连接服务器后 netstat -an状态是ESTABLISHED吗