gpt4 book ai didi

linux - localsocket服务器未收到readyread信号

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:36 25 4
gpt4 key购买 nike

我有一个 QLocalserver,我可以在其中读取非 QT 客户端发送的数据。接收到一些按键事件后发送数据。这意味着如果我按某个键,数据将通过 localsocket 发送到服务器,我必须在我的服务器中执行一些操作。

现在有时会出现即使sendto的返回值为+ve值即成功,数据也没有到达服务器的情况。仅当按下任何其他键时才会收到数据,即使此后我没有将数据发送到套接字。

我正在读取所有字节,直到在readyread槽中的while循环中结束,但仍然不知道问题是什么。谁能帮我解决这个问题。这是否与就绪读信号生成或某些调度问题有关。

Ready读槽如下

void MainWindow::ReadyRead(void)
{
char cmd[sizeof( struct Data)];
struct Data *Rcv;
while(ui->client->bytesAvailable())
{
ui->client->read(cmd, sizeof(struct Data));
Rcv= ( struct Data *)cmd;
CommandParser(Rcv);
}
}

最佳答案

没有一些代码,很难清楚地说出什么问题,我有一些假设:

  1. 由于数据看起来很小,可能是套接字(客户端)正在缓冲数据达到特定数量,因此未发送。请参阅“Nagle”算法...
  2. 你的“readyRead”槽中有无限循环吗?这可能会导致接收数据时出现问题。

不过,如果有一段代码,我们将不胜感激。

关于linux - localsocket服务器未收到readyread信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26492330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com