다른 프로그램과 통신하기 위해 로컬 포트를 수신 대기하는 Java 응용 프로그램을 개발 중입니다. 일반적으로 127.0.0.1:8808을 말합니다.Java는 프로그래밍 방식으로 REAL 루프백 주소를 얻습니다.
내 고객 중 한 명이 Citrix 환경을 사용 중이며 MS 원격 데스크톱 환경과 같아 여러 사용자가 같은 컴퓨터에 동시에 로그인 할 수 있습니다.
이러한 터미널 서버 사용자는 하나의 루프백 주소를 공유합니다. 즉, 내 응용 프로그램을 실행하는 첫 번째 사용자 만 성공적으로 127.0.0.1:8808에 바인딩 할 수 있으며 나머지는 리소스 충돌 오류가 발생합니다.
클라이언트가 "가상 루프백"을 활성화하여이 문제를 해결하려고하면이 설정은 다른 사용자에게 다른 루프백 주소를 자동으로 할당 할 수 있으며 모든 사용자는 127.0.0.2-127.0.0.255를 모두 127.0.0.1 대신 루프백 주소로 가져옵니다. 이 상황에 대한 완벽한 솔루션처럼 들립니다.
크롬 루프 및 IE와 같은 다른 프로그램에서 가상 루프백이 잘 작동한다는 것을 테스트 한 결과 TCPView 도구는 내 프로그램을 제외하고 localhost에 대한 모든 연결이 127.0.0.2로 리디렉션된다는 것을 보여줍니다.
코드에서 고정 주소 127.0.0.1을 사용하고 있기 때문에 문제가 발생할 수 있다고 생각하지만 확인해야 할 환경이 없습니다. 그래서 내 질문은 여기에 있습니다 : 내가 그런 상황에서 실제 루프백 주소를 얻는 데 사용할 수있는 자바 메서드가 있습니까, 그래서 내가 올바른 주소에 바인딩 할 수 있습니까?
미리 감사드립니다.
127.0.0.1은 실제 루프백 주소입니다. 루프백으로 다른 주소를 사용할 수 있지만 이것은 대부분의 사람들이 사용하는 주소입니다. –
몇 가지 조사를 수행 했습니까? http://support.citrix.com/article/CTX209237 – GhostCat
@GhostCat 감사합니다. 근본 원인 일 수 있습니다. 내 고객에게 시도해 볼 것을 요청할 것입니다. –