从Win64到Win32的PNET通信
-
11-12-2019 - |
题
我使用 Pnet TCP / UDP工具箱)与 psysctoolbox 在不同机器中的Matlab实例之间进行通信。我的一台机器是32位Win7运行Matlab 2010B。另一个是64位Win 7运行Matlab 2012A。我在将数据从一台计算机传送到另一台计算机时存在问题。
实验1 :从64位计算机运行UDP_SEND_DEMO,同时从32位计算机运行UDP_PLOTTER_DEMO。 预期结果:32位计算机绘制数据,等待键盘输入。如果KB输入,请关闭数字和终端演示。 64位完成发送和停止演示。 实际结果:64位表现为应。 32位计算机图,但挂起并拒绝关闭演示。它没有响应任何键盘输入,并且必须断开。
实验2 :以上面的实验运行,反向32位发送和64位读数。 预期结果:64位图,等待键盘输入。如果找到了KB输入,请停止演示。 实际结果 64位MATLAB崩溃判断MEX文件中的分段违规。它显示堆栈跟踪(我在最后附加一部分)。
与端口号一起玩,没有区别。重新编译'pnet.c.'源文件而不是使用预编译的mex没有区别。 问题:有人尝试过这样的东西吗?你有没有工作?你可以建议尝试采取这项工作的事情,而无需在我的Win64计算机中安装32位Matlab?
============
代码:
服务器端:
.
udp_send_demo('sin(0:0.1:6)',clientIPStr,portToListen)
客户端:
.
udp_plotter_demo(portToListen)
=============
堆栈跟踪
在2012年9月29日星期六检测到分割违规行为
配置:
崩溃解码:禁用
默认编码:Windows-1252
matlab root:c:\ program files \ matlab \ r2012a
Matlab版本:7.14.0.739(R2012A)
操作系统:Microsoft Windows 7
处理器ID:X86系列6型号58踏步9,正版inteintel
虚拟机:Java 1.6.0_17-B04带Sun Microsystems Inc. Java Hotspot(TM)64位服务器VM混合模式
窗口系统:6.1版(Build 7601:Service Pack 1)
故障计数:1
异常终止: 分割违规
寄存器状态(来自故障): Rax= 0000000000000000 rbx= 000000000000000000
rcx= 000000005d0df7d7 rdx= 000000000000000001
RSP= 00000000040671B0 RBP= 0000000004067289
RSI= 000000000000003D rdi= 000000000000003d
r8= 000000005d0df7d6 r9= 000050490EE40167
r10= 00000000000000000000
R12= 000000000000000008 R13= 000007FEFB997678
r14= 000000000000000002 r15= 000000000000000002
RIP= 000007FEFB99238A EFL= 00010202
cs= 0033 fs= 0053 gs= 002b
堆栈跟踪(来自故障):
[0] 0x000007FEFB99238A C:\ Users \ Ephys-Data \ Desktop \ Temp \ TCP_UDP_IP \ Pnet.mexw64 + 00009098(Perror + 004298)
[1] 0x000007FEFB99389B C:\ Users \ Ephys-Data \ Desktop \ Temp \ TCP_UDP_IP \ Pnet.mexw64 + 00014491(MEXFunction + 001979)
[2] 0x000000000074f10f63 c:\ program files \ matlab \ r2012a \ bin \ win64 \ libmex.dll + 00069475(mexrunmexfile + 000131)
[3] 0x000000000074f0fce2 c:\ program files \ matlab \ r2012a \ bin \ win64 \ libmex.dll + 00064738(inswapmexfilereader + 000226)
[4] 0x000000000074f0fe58 c:\ program files \ matlab \ r2012a \ bin \ win64 \ libmex.dll + 00065112(inswapmexfilereader + 000600)
[5] 0x0000000074E4B046 C:\ Program Files \ Matlab \ R2012A \ Bin \ Win64 \ M_Dispatcher.dll + 00045126(mfh_file :: dispatch_fh + 000486)
....更多的东西....
在MEX文件运行时检测到此错误。如果MEX文件不是官方MATHWORKS函数,请检查其源代码以获取错误。有关调试MEX文件的信息,请参阅外部接口指南。
如果此问题是可重复的,请通过以下方式提交服务请求:....
技术支持工程师可以通过更多信息与您联系。
谢谢你的帮助。
感谢
-b
解决方案
我在Psychtoolbox中写了有用的人。显然,在Pscentoolbox的“beta”版本中,错误被抓住并解决了。如果您拥有最新和最棒的乐曲池,请运行updatepsychtoolbox睡个好觉。查看这里