Я создаю простой TCP-сервер и создаю слот/функцию, которая считывает входящий текст от клиента (соединение telnet) через TCP-сокет. Я использовал примеры кода Fortune, чтобы помочь себе, но мне пришлось удалить QDataStream, так как он не работал должным образом.
Я хочу, чтобы моя функция readCommand собирала входящие символы из клиентского соединения telnet и, как только она находила новую строку или возвращалась, удаляла введенную команду из входного буфера, удаляла /n и /r, добавляла ее в мой список строк (commandList), а затем повторите команды (отдельная функция). Вот что у меня есть:
void MyServer::readCommand()
{
inBuffer += tcpSocketPtr->readAll();
// While newline is present, extract the command
int nextNewlinePos;
while ((nextNewlinePos = inBuffer.indexOf('\n')) > -1) {
commandList << inBuffer.left(nextNewlinePos);
inBuffer.remove(0,nextNewlinePos);
// Get rid of /n /r if present somehow
}
if (commandList.size() > 0)
{
echoCommand();
}
}
Прежде чем я начну удалять /n и /r и т. д. вручную, моя интуиция подсказывает мне, что есть лучший способ сделать это. Подходит ли QTextStream? Может ли кто-нибудь предоставить простую (r) альтернативу тому, чего я пытаюсь достичь?