我正在實現一個簡單的基於Qt的客戶端,它一次發送一個命令到NON_QT服務器和服務器響應。一旦我收到服務器的回覆,我將其用於其他目的,具體取決於響應Qt客戶端收到垃圾字符,除了預期的字符串
一切按預期工作。只有輕微的毛刺我收到串像
command_accepted\u0000\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
雖然說預期的服務器的規格響應「command_accepted」。 所以我對我爲什麼會得到那些奇怪的字母一無所知。請建議我。
void ClientForNonQtServer::getResponse()
{
QTextStream stream(sockForClient);
QString line;
forever
{
if(nextBlockSize == 0)
{
if(sockForClient ->bytesAvailable() < sizeof(quint16 ))
{
break;
}
stream >> nextBlockSize;
}
if(sockForClient ->bytesAvailable() < nextBlockSize)
{
break;
}
stream >> line;
if(!line.isNull())
{
qDebug()<< " stream is "<< line;
}
}
}
客戶端和服務器端可能使用不同的編碼。 – Zen
你能告訴我怎麼讓客戶端使用相同的編碼。客戶端在Windows上運行UBuntu和d服務器 – samprat
http://stackoverflow.com/questions/6357556/some-problem-when-client-receive-messages-from-server-though-socket – Zen