问题标签 [qtcpsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3889 浏览

qt - 通过 QDataStream 和 QTcpSocket 读取和发送文件

我的问题是变量内容总是空的。这是我的代码:

输出 :

内容始终为空

感谢您的帮助

0 投票
1 回答
5344 浏览

timeout - PC端使用Qt(C++)实现欧姆龙FINS协议 [驱动]

我正在为跨平台桌面应用程序工作。我使用 Qt 在 C++ 中开发它,并且已经通过套接字( QTcpSocket )实现了 PC 端 Omron FINS TCP 协议驱动程序。当我通过 FINS 协议从寄存器读取时 - 我在 30 毫秒内收到正确的响应,但是当我写入 plc 的寄存器时 - plc 没有响应 - 套接字超时错误( QAbstractSocket 错误代码 = 5 )。

从寄存器读取代码(函数接收 reg_addr - 寄存器地址并更新值): bool fins_read_reg(int reg_addr,int *value); -->



bool fins_write_reg(int reg_addr,const int value); -->


其中 f - 是一些临时日志文件指针 sc - 发送/接收 FINS 命令的 QTcpSocket 实例 PLC:CP1L-L14DT1-D 以太网选件板:CP1W-CIF41

存储区指定代码功能:

当我使用 Multiway 软件测试命令时 - 收到响应并将值放入 register ,但与 QTcpSocket 和错误相同,为什么?我的问题是:您在运行 FINS 驱动程序时是否出现过这样的问题?为什么在FINS write to register命令形成ok时会出现无响应的情况?如果是,如何克服/修复?

0 投票
1 回答
1089 浏览

qthread - 如何使用 QThreads 在多个 QTcpSockets 上写入?

我已经为 QTcpSockets 和 QThreads 上的这个问题苦苦挣扎了几天。

我有一个 QTcpServer,它侦听一个端口并使用 nextPendingConnection() 创建一个新客户端。所以现在客户端有一个 qtcpsocket,我可以用它来读写。

假设我有 100 个客户端连接到我的服务器。当其中一个想要向所有人广播消息时,我的主线程(我在其中使用 nextPendingConnection() 创建客户端)将不得不迭代 100 多个客户端并在其套接字上调用 write 方法。例如,如果 10 个用户同时广播,我将不得不进行 1000 次迭代,所以我认为客户端会有一些延迟(当用户收到消息时)。

我想在单独的线程中编写所有套接字,以便我可以并行发送数据。我知道我不能从创建它的线程调用另一个线程的套接字,我不想每个客户端使用一个线程,因为我不知道拥有很多线程是否是个好主意(此外,除非客户端断开连接,否则这些线程应始终运行)。

我已经阅读了线程财富服务器示例,但它没有回答我的问题,因为它们在发送数据后破坏了套接字;我不想破坏我的套接字,因为我必须在它上面监听传入的消息(这样我就可以广播它们)。

我想到的一件事是为每个客户端(在服务器和客户端)有 2 个套接字;这样我就可以保留一个套接字供阅读,而另一个我可以像在线程财富服务器示例中一样使用;在这种情况下,我还将使用线程池来限制任务的数量(否则这将与每个客户端使用一个线程相同)。

您能否指出我正确的方向或给我一些关于如何在每个客户端实际上没有一个线程的情况下实现并行套接字写入的提示......?

最好的祝福,

塞巴斯蒂安

0 投票
1 回答
109 浏览

network-programming - tcp-messaging 的最佳约定

我正在使用此消息对流:%total_msg_length%|%msg_body% 通过 tcp-sockets (python/pyqt) 接收字符串数据。这是好的对流,还是我应该尝试别的?

0 投票
0 回答
1263 浏览

qt - 无法从 QTcpSocket 读取数据

我使用 QTcpSocket 打开连接并接收数据。但我在从套接字读取数据时遇到问题。

// 头文件

// cpp文件

如果我尝试从另一端发送 281 字节数据,则读取函数返回 281 字节,但缓冲区中没有数据。

我不知道我做错了什么。我怎样才能使这项工作?

0 投票
1 回答
3302 浏览

python - 派克特; 服务器重启后QTcpSocket一直处于connectingState;

我有一个 QTcpSocket 的子类。问题是:当我第一次连接到服务器时 - 一切正常,但是在套接字连接后我重新启动服务器(python socketServer,只需关闭并再次启动脚本)套接字断开连接并在服务器关闭时尝试重新连接,但是当我再次启动服务器时- 什么也没发生,socket.state() 总是在 ConnectingState.. 有什么问题?

这里示例代码:

这是输出:

0 投票
1 回答
9634 浏览

c++ - 获取远程主机IP地址QTcpServer

我正在使用 Qt 使用 QTcpServer 创建 TCP 服务器。每次客户端连接到服务器时,我都想知道远程主机的 IP 地址和端口号。我尝试搜索文档,但找不到有关此主题的任何信息。

我知道应该有办法,我只是无法弄清楚。请帮忙。

0 投票
1 回答
8969 浏览

python - PyQt QTcpServer:如何向多个客户端返回数据?

我希望使用 PyQt 创建一个 QTcpServer,它可以同时将数据返回到 2 个或更多客户端。我认为这将需要线程。

使用 threadedfortuneserver.py 示例作为测试用例(包含在 PyQt4 中,在我的系统上它位于 /usr/share/doc/python-qt4-doc/examples/network 中),我想连接多个客户端,并且每次一个的客户要求发财,其他客户也会收到更新消息,例如“客户 X 刚刚收到了财富 'blah blah blah'”。

我了解财富服务器/客户端程序的工作原理,但似乎在财富发送回客户端后客户端连接立即终止。我的具体问题是:

  1. 是否可以保持所有连接打开,以便每次其中一个客户端请求发财时,其他客户端都可以更新?

  2. 如果是这样,跟踪和循环连接的客户端的最佳方法是什么?

这对我来说是一个严重的绊脚石,因为我想开发一个应用程序,其中多个客户端可以交互,并且每个客户端都可以更新其他客户端的操作。

提前感谢您的帮助,如果我可以提供任何其他信息,请告诉我。

我找到了这个线程,但没有足够的具体信息可供使用。其他讨论是针对 Python 套接字包的,但我的理解是,在使用 PyQt 时,服务器应该是 QTcpServer,所以一切都很好。

*** 编辑 ***

这是我的解决方案的开始阶段。我已经创建了一个基本的服务器和客户端。服务器只是将客户端输入到行编辑框中的内容发回。

我基于“使用 Python 和 Qt 进行快速 GUI 编程”第 18 章中的“buildingservices”示例。

我所做的主要改变是现在线程无限期地运行,它们的套接字保持打开状态,监听客户端发送的数据。

它可以很好地处理多个客户。这当然很难看,但我认为这是一个很好的起点。

我想要的是能够在一个客户输入文本时通知每个客户(比如典型的聊天程序)。

此外,为了让您了解您正在与谁打交道,我不是专业的程序员。我是一名物理学家,多年来一直在编写散漫的脚本和摆弄我的腰带。但我想尝试开发可以传递数据的基本服务器/客户端程序。

感谢您的任何帮助或建议!

服务器:

客户:

0 投票
1 回答
509 浏览

c++ - QTcpSocket::write 上的多次调用?

根据这里http://doc-snapshot.qt-project.org/4.8/qiodevice.html

QIODevice 的某些子类,例如 QTcpSocket 和 QProcess,是异步的。

例如,已经进行了第一次写入调用以发送一大块数据。现在,在第一次写入调用完成之前,还进行了第二次写入调用以发送另一块数据。

现在会发生什么?在开始发送块之前,第二个调用是否等待第一个调用完全完成?

0 投票
1 回答
244 浏览

c++ - 分配 QTcpSocket 对象