Win64からWin32へのPNet通信
-
11-12-2019 - |
質問
pnet tcp / udpツールボックス) psychtoolbox は、さまざまなマシンでMATLABの2つのインスタンス間で通信します。マシンの1つはMATLAB 2010Bを実行している32ビットWIN7です。もう1つはMATLAB 2012Aを実行している64ビットWin 7です。 1つのコンピュータから他のコンピュータへのデータの転送に問題があります。
実験1 :32ビットコンピュータからUDP_PLOTTER_DEMOを実行しながら、64ビットコンピュータからUDP_SEND_DEMOを実行します。 予想される結果:32ビットコンピュータプロットデータは、キーボード入力を待ちます。 KB入力の場合は、図とエンドデモを閉じます。 64ビットデモの送信と停止を終了します。 実際の結果:64ビットはそれがそうでなければなりません。 32ビットコンピュータプロットがハングしてデモを閉じることを拒否します。それはどんなキーボードの入力には応答していないため、力を閉じなければなりません。
実験2 :32ビット送信と64ビットの読み取りで逆で実験を実行します。 予想される結果:64ビットプロットとキーボード入力を待ちます。 KB入力が見つかった場合は、デモを停止してください。 実際の結果 64ビットのMATLABクラッシュは、MEXファイルのセグメンテーション違反を主張しています。スタックトレースを表示します(最後にその一部を追加しています)。
ポート番号で演奏すると違いはありません。プリコンパイルされたMEXを使用する代わりに 'pnet.c'ソースファイルを再コンパイルすると、違いはありません。 質問:誰かがこのようにしてみましたか?あなたはそれを働かせましたか?私のWin64コンピュータに32ビットのMATLABをインストールする必要なしにこれを働くことを試みることを提案することができますか?
===========
コード:
サーバー側:
.
udp_send_demo('sin(0:0.1:6)',clientIPStr,portToListen)
クライアント側:
.
udp_plotter_demo(portToListen)
============
スタックトレース
セグメンテーション違反がSAT SEP 29 16:41:11 2012
構成:
クラッシュデコード:無効
デフォルトのエンコーディング:Windows-1252
MATLABルート:C:\ Program Files \ MATLAB \ R2012A
MATLAB版:7.14.0.739(R2012A)
オペレーティングシステム:Microsoft Windows 7
プロセッサID:X86ファミリー6モデル58ステッピング9、Genuineintel
仮想マシン:Sun Microsystems Inc.のJava 1.6.0_17-B04 Java HotSpot(TM)64ビットサーバーVM混合モード
ウィンドウシステム:バージョン6.1(ビルド7601:Service Pack 1)
フォルトカウント:1
異常終了: セグメンテーション違反
レジスタ状態(障害から): RAX= 00000000000000 RBX= 0000000000000000
RCX= 000000005D0DF7D7 RDX= 000000000000000001
RSP= 00000000040671B0 RBP= 0000000004067289
RSI= 000000000000003D RDI= 00000000000000003D
R8= 000000005D0DF7D6 R9= 000050490EEE40167
R10= 000000000000003D R11= 0000000000000000
R12= 0000000000000008 R13= 000007FEFB997678
R14= 0000000000000002 R15= 0000000000000002
RIP= 000007FEFB99238A EFL= 00010202
CS= 0033 FS= 0053GS= 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] 0x0000000074F10F63 C:¥Program Files¥MATLAB¥R2012A¥bin¥win64¥libmex.dll + 00069475(MexrunMexFile + 000131)
[3] 0x0000000074F0FCE2 C:¥Program Files¥MATLAB¥R2012A¥bin¥win64¥libmex.dll + 00064738(InswapMexFileReader + 000226)
[4] 0x0000000074FE58 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-fileが実行されている間にこのエラーが検出されました。 MEXファイルが正式なMathWorks関数ではない場合は、エラーのソースコードを調べてください。 MEXファイルのデバッグについては、[外部インターフェイスガイド]を参照してください。
この問題が再現されている場合は、次のようなサービス要求を送信してください。
テクニカルサポートエンジニアは、さらなる情報であなたに連絡するかもしれません。
あなたの助けをありがとうございました。
ありがとう
b