VMware-Workstation (버전 : 8.0.0 build-471780)과 통신하기 위해 Java 소켓을 구현 중입니다.소켓 및 VMware-Workstation 스터브 통신 문제
로컬 컴퓨터에서 가상 컴퓨터를 실행하고 있기 때문에 으로 소켓을 만들고 8832는 defalut에서 디버깅을 수신 대기하는 포트입니다. 연결이 거부되거나 어떤 종류의 예외가 발생하지 않습니다. 그러나 내 프로세스와 VMware Stub 사이의 통신을 설정하는 데 어려움이 있습니다.
이러한 방법을 효과적으로 보내거나 스텁에서 아무것도 수신되지 않습니다이 차단 호출이기 때문에
public void sendStr(String str) throws IOException {
out.write(str.getBytes());
}
public String getStr() throws IOException, ClassNotFoundException {//blocking call
byte[] byteArray = new byte[40];
in.read(byteArray);
return new String(byteArray);
}
두 번째 방법은, 끝나지 않아.
Java 프로세스를 종료하면 가상 컴퓨터가 디버거 연결이 끊어진 것을 알 수 있으므로 연결이 성공적으로 완료되었다고 말할 수 있습니다.
누군가 나를 도와 줄 수 있습니까? 나는 이제 무엇을해야 할지를 모른다.
불행하게도, 나는 가상 머신 외부 프로그램을 실행할 수 없습니다 사용하는 것입니다. 내가 말한 방식대로 시도했지만 'getStr()'메서드가 멈춘다. 아마도 'sendStr()'에서 비슷한 것을 상상할 수 있지만 'getStr()'만 블로킹하기 때문에 그냥 멈추게됩니다. – onurbruno
가상 머신 내부에서 실행할 수 있습니까? 송신자가 송신하지 않기 때문에 getStr이 중단됩니다. writeUTF() 전후에 로그 메시지를 추가하여 전송 중인지 확인합니다. –
당신 말이 맞아요, 또한 보내지 않습니다! vmware.log 파일에 "Debug stub remote connection accepted"가 표시되어 문제가 연결과 관련이없는 것 같습니다. – onurbruno