我想在同一台机器上的 Matlab 脚本和 Qt (C++) 应用程序之间来回通信。在 Qt 中,您创建一个 QLocalServer
对象并指示它监听特定句柄上的连接,例如“my_server”(可以是任何东西)。
在 Matlab 中,我查看了相关的 MatlabCentral 列表,例如 this one和 this 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/