Win64에서 Win32까지 Pnet 통신
-
11-12-2019 - |
문제
"> Pnet TCP / UDP 도구 상자 ) psychtoolbox "> psychtoolbox 두 개의 MATLAB의 두 인스턴스를 다른 컴퓨터에서 통신합니다. My Machines 중 하나는 Matlab 2010B를 실행하는 32 비트 Win7입니다. 다른 하나는 64 비트 윈 7 Matlab 2012a를 실행합니다. 한 컴퓨터에서 다른 컴퓨터로 데이터를 전송하는 데 문제가 있습니다.
실험 1 : udp_plotter_demo를 32 비트 컴퓨터에서 실행하는 동안 64 비트 컴퓨터에서 udp_send_demo를 실행하십시오. 예상 결과 : 32 비트 컴퓨터 플롯 데이터, 키보드 입력을 기다립니다. KB 입력, 닫기 그림 및 엔드 데모. 64 데모를 보내고 멈추게됩니다. 실제 결과 : 64 비트는 해야하는 것처럼 작동합니다. 32 비트 컴퓨터 플롯이지만 데모를 닫는 것을 거부하고 거부합니다. 키보드 입력에 응답하지 않으며 강제로 폐쇄되어야합니다.
실험 2 : 32 비트 송신 및 64 비트 읽기와 역으로 실험을 실행합니다. 예상 결과 : 64 비트 플롯 및 키보드 입력을 기다린다. KB 입력이 발견되면 데모를 중지하십시오. 실제 결과 MEX 파일에서 세그먼테이션 위반을 청구 한 64 비트 MATLAB 충돌이 발생합니다. 스택 추적을 표시합니다 (끝에 그것의 일부를 추가하고 있습니다).
포트 번호로 재생하면 차이가 없습니다. 미리 컴파일 된 MEX를 사용하는 대신 'pnet.c'소스 파일을 다시 컴파일하면 차이가 없습니다. question : 아무도이 같은 것을 시도 했습니까? 일하러 왔니? Win64 컴퓨터에 32 비트 MATLAB를 설치하지 않고도 작동하려면이 작업을 수행하려고 할 수 있습니까?
============
코드 :
서버 측 :
.
udp_send_demo('sin(0:0.1:6)',clientIPStr,portToListen)
클라이언트 측 :
.
udp_plotter_demo(portToListen)
=============
스택 트레이스
SAT에서 탐지 된 세분화 위반 29 16:41:11 2012
구성 :
크래시 디코딩 : Disabled
기본 인코딩 : Windows-1252
MATLAB 루트 : C : \ PROGRAM FILES \ MATLAB \ R2012A
MATLAB 버전 : 7.14.0.739 (R2012A)
운영 체제 : Microsoft Windows 7
프로세서 ID : x86 패밀리 6 모델 58 Stepping 9, Genuineintel
가상 컴퓨터 : Java 1.6.0_17-B04 Sun Microsystems Inc. Java 핫스팟 (TM) 64 비트 서버 VM 혼합 모드
윈도우 시스템 : 버전 6.1 (빌드 7601 : 서비스 팩 1)
오류 횟수 : 1
비정상 종료 : 세분화 위반
레지스터 상태 (오류에서) : rax= 0000000000000000 rbx= 0000000000000000
RCX= 00000000005D0DF7D7 RDX= 00000000000001
rsp= 00000000040671B0 rbp= 0000000004067289
RSI= 00000000000000003D RDI= 000000000000003D
R8= 000000005D0DF7D6 R9= 000050490EE40167
R10= 00000000000000003D R11= 0000000000000000
r12= 000000000000000008 R13= 000007FEFB997678
R14= 0000000000000002 R15= 0000000000000002
RIP= 000007FEFEF99238A 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] 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] 0x0000000074F0FE58 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-file이 공식 Mathworks 기능이 아닌 경우 오류에 대한 소스 코드를 검토하십시오. mex-files 디버깅에 대한 정보는 외부 인터페이스 가이드를 참조하십시오.
이 문제가 재현 가능하면 다음을 통해 서비스 요청을 제출하십시오 ....
기술 지원 엔지니어는 추가 정보와 함께 연락 할 수 있습니다.
도움말 주셔서 감사합니다.
감사합니다
-b