c++ - 从 Matlab 连接到本地服务器

标签 c++ qt matlab localserver

我想在同一台机器上的 Matlab 脚本和 Qt (C++) 应用程序之间来回通信。在 Qt 中,您创建一个 QLocalServer 对象并指示它监听特定句柄上的连接,例如“my_server”(可以是任何东西)。

在 Matlab 中,我查看了相关的 MatlabCentral 列表,例如 this onethis one ,但在这两种情况下我都无法让它们工作,而且我什至不知道该怎么做——无法指定句柄。如果我只是告诉他们听本地主机,他们不会连接。

那我能在这里做什么呢?通过 MEX 文件执行此操作可能是可能的,但我将把它作为最后的手段。我也坚持使用 R2009b,所以我在 Matlab 中没有 udp 命令。

最佳答案

试用 Peter Rydesäter 的工具箱:http://www.mathworks.com/matlabcentral/fileexchange/345-tcpudpip-toolbox-2-0-6很旧但仍然有效。

带有两个 Matlab 实例的示例:

发件人:

function sendudp(host, port, data)
  udp=pnet('udpsocket',1111);          % open local socket on port 1111
  pnet(udp,'write',data);              % write data to buffer
  pnet(udp,'writepacket',host,port);   % send udp-packet
  pnet(udp,'close');                   % close connection
end

接收者:

sock = pnet('udpsocket', 950) % open socket on port 950

发件人:

sendudp('127.0.0.1', 950, 'Hello World') % Call function defined above, send Hello World to localhost, port 950

接收者:

size = pnet(sock, 'readpacket'); % Get Data from sock, and load to buffer
data = pnet(sock, 'read'); % Read Data from buffer

关于c++ - 从 Matlab 连接到本地服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350086/

相关文章:

c++ - 将 std::move 与 lambda 一起使用时,移动何时发生

c++ - Xcode:多个项目,不止一个主要可执行文件

QTableView 和 horizo​​ntalHeader()->restoreState()

c++ - Qt QFile::size() 总是返回 0

Matlab:从命令窗口重命名工作区元素?

matlab - 无法在 MATLAB 中的箱线图上绘制线条

arrays - MATLAB:将值映射到其他数组的索引

c++ - QT/QML c++ 程序在从 QML 访问 QList 时崩溃

c++ - 用 qt(5) 绘制 Tiled map 的最佳方法是什么?

c++ - Xcode可以识别C++中的类变量吗