【问题标题】:Why can't I send data with QTcpSocket's write() method?为什么我不能用 QTcpSocket 的 write() 方法发送数据?
【发布时间】:2012-07-06 21:45:20
【问题描述】:

我正在尝试仅通过文档来学习 Qt,这有点困难。我设法让一个简单的命令行聊天客户端工作,但我不知道如何发送东西。从 Qt 中的套接字读取大约需要 4 行直观的代码,但由于某种原因我不能说

QTcpSocket socket;
socket.connectToHost("google.com", 80);
socket.write("hey");
socket.flush();

冲洗();返回 false,但我不明白为什么。

我真的不明白为什么这不起作用,希望能提供任何帮助。谢谢!

【问题讨论】:

  • 如果发生错误,您是否实现了接收QAbstractSocket::error ( QAbstractSocket::SocketError socketError ) 的插槽?

标签: c++ qt sockets network-programming buffer


【解决方案1】:

在调用connectToHost() 之后,您需要为connected() 提供一个槽处理程序或调用waitForConnected() 以等待与主机的连接完成,否则您的代码会在连接建立之前通过尝试写入而放大。

【讨论】:

  • 我使用了 waitForConnected()... 它使 flush() 返回 true,但实际上并没有工作(我的 Java 聊天客户端上没有显示任何内容)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
相关资源
最近更新 更多