2014-12-17 1 views
0

두 부분으로 구성된 원격 PC 중재를위한 소프트웨어를 만들려고합니다.단일 클래스 파일의 내용을 Object로로드하여 spicific 유형으로 변환 할 수 있습니까?

클라이언트 : 사람들의 PC에서 실행되는 명령

Server 용의 BufferedReader와 소켓을 통해 서버에 수신 : 여러 클라이언트가 연결하고, 각각의 개별 명령을 보낼 수 있습니다 수 있습니다.

유일한 문제는 일부 클라이언트가 다른 명령 유형을 요구할 수 있다는 것입니다. 예를 들어, 바탕 화면의 웹캠에서 사진을 요청하고 언제든지 내 방의 상황을 볼 수 있기를 원할 수 있습니다. 하지만 모든 클라이언트에이 기능을 설치하고 싶지는 않습니다. 왜냐하면 그건 소름 끼칠거야.

통신 소켓의 매개 변수로 추상 메소드가있는 추상 클래스 인 모듈을 만들 수 있는지 궁금합니다. 모듈을 확장하는 개별 클래스 파일을 만들어 클라이언트에 다운로드하고 클라이언트 클래스 경로에 추가합니다.

단일 클래스 파일의 내용을 Object로로드하여 특정 유형으로 변환 할 수 있습니까?

답변

2

네트워크 연결을 통해 전송 된 클래스를 메모리에서로드하는 클래스 로더를 작성하는 방법에 대한 정보는 사용자가 원하는 것입니다. 예, 가능합니다. 이제는 웹에서 볼 수있는 핵심 단어를 찾을 수 있어야합니다.

응용 프로그램을 설계하는 올바른 방법은 별도의 질문입니다. 실제로 사람들에게 더 많은 제어 권한을 부여하지 않은 것처럼 들리지만, 프레임 워크를 설치 /로드 한 후에 네트워크 연결을 분리하지 않는 한 더 많은 제어가 필요하다는 착각입니다. 따라서 올바른 대답이라고 확신하지 못합니다.

+0

주위를 둘러 보았습니다.이 파일을 찾았습니다. –

+0

파일 file = 새 파일 ("c : \\ myclasses \\"); URL을 파일로 변환 URL url = file.toURL(); // file :/c :/myclasses/ URL [] urls = 새 URL [] {url}; // 디렉토리가있는 새 클래스 로더를 만듭니다. ClassLoader cl = new URLClassLoader (urls); // 클래스에로드하십시오. MyClass.class는 // 디렉토리 파일에 있어야합니다./c :/myclasses/com/mycompany cls = cl.loadClass ("com.mycompany.MyClass"); } catch (MalformedURLException e) { } catch (ClassNotFoundException e) { } –

+0

그러나 Class 객체를 반환합니다.이 객체를 일반 객체로 캐스팅 할 수 있습니까? 또는 인터페이스의 인스턴스로? –