QT套接字等待用户输入

沃尔特

我正在尝试开发具有基本身份验证的简单服务器,我有以下代码:

socket = new QTcpSocket();
connect(socket,SIGNAL(readyRead()),this,SLOT(readyRead()),Qt::DirectConnection);
connect(socket,SIGNAL(disconnected()),this,SLOT(disconnected()),Qt::DirectConnection);
check_user();

.......和check_user()是

socket->write("Please enter username:");
socket->flush();
QStringList list;
while (socket->canReadLine())
{
    QString data = QString(socket->readLine());
    if ( data == "\r\n" )
        break;
    list.append(data);
}
qDebug()<<list;

但这不必等待用户输入并继续进行。我希望这个函数等待用户输入一个可变长度的字符串,直到回车。但是如何?

luv4bytes

您可以将插槽连接到readyRead()插座信号,并在那里处理输入。
https://doc.qt.io/qt-5/qiodevice.html#readyRead
但是,要正常工作,您需要在套接字所在的线程中运行一个事件循环。
https://doc.qt。 io / archives / qt-4.8 / qeventloop.html

另一种解决方案是使用waitForReadyRead(-1)套接字。这将阻塞线程并发出readyRead()信号。true如果发出信号,该函数将返回但是您还需要一个运行中的事件循环。
https://doc.qt.io/qt-5/qabstractsocket.html#waitForReadyRead

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使套接字等待来自JTextArea的输入

来自分类Dev

TCP客户端套接字。连接并等待输入流

来自分类Dev

等待套接字操作

来自分类Dev

将用户输入的主机添加到套接字,同时对套接字使用单例

来自分类Dev

套接字等待连接超时

来自分类Dev

与Qt的Java套接字连接

来自分类常见问题

C ++等待用户输入

来自分类Dev

TThread等待用户输入

来自分类Dev

退出等待用户输入

来自分类Dev

等待用户输入

来自分类Dev

丢弃来自套接字的输入

来自分类Dev

读取套接字的输入流

来自分类Dev

Linux套接字:如何使send()等待recv()

来自分类Dev

套接字等待接受关闭堆栈

来自分类Dev

TCP套接字发送/接收始终等待

来自分类Dev

fgets不等待用户输入

来自分类Dev

如何让Java等待用户输入

来自分类Dev

暂停执行并等待用户输入

来自分类Dev

Swift WatchOS等待用户输入

来自分类Dev

程序无需等待用户输入

来自分类Dev

Qt-暂停程序执行以等待用户输入的正确方法是什么?

来自分类Dev

如何使用Qt阻止tcp套接字?

来自分类Dev

Qt TCP / IP套接字连接检查

来自分类Dev

QT-JAVA套接字丢失数据

来自分类Dev

Java:套接字未获取输入

来自分类Dev

套接字发送在终端中输入的数据

来自分类Dev

系统套接字激活标准输入

来自分类Dev

每个用户的套接字io通道通知

来自分类Dev

每个用户的套接字io通道通知