문제

새로운 유형의 새로운 유형을 어떻게 정의합니까? java.nio.channels.SelectableChannel (직렬 포트에 대해 말하면)?

도움이 되었습니까?

해결책

내 이해는 Java 구현이 Unix를 기반으로한다는 것입니다. select() C 함수 (Windows 구현이 약간 다르다는 것을 기억하는 것 같습니다)

OS (및 JVM Args!)에 따라 다른 기본 OS 기능이 호출되지만 공통점은 기본 코드라는 것입니다. 기본 기능은 Java에서 구현되지 않습니다.

액세스하는 lib를 만들고 싶다면 select() (또는 유사한) 기본 OS (실제로 파일 핸들에 의존)의 경우 JNI를 사용해야한다고 생각합니다. 나는 그 주위에 어떤 방법이 있다고 생각하지 않습니다.

Java의 Selector/SelectableChannel은 실제로 무엇의 빈혈 하위 집합입니다. select() 할수있다.

다른 팁

당신은 아마 확장하고 싶을 것입니다 java.nio.channels.spi.AbstractSelectableChannel 필요한 구현을 작성합니다. 다른 것을 요구하는 경우 더 자세한 질문을해야합니다. JDK 소스 코드는 다운로드하는 버전에 따라 몇 가지 라이센스로 다운로드 할 수 있습니다. JDK 구현을 볼 수있는 옵션이 있습니다 (java.nio.channels.Channel, java.nio.channels.SocketChannel, 등 ...) 구현해야 할 사항을 완전히 이해합니다. 그러나 이렇게하면 다운로드 한 소스 코드의 라이센스를 준수 할 수없는 한 JDK 소스에서 코드를 복사하지 않도록주의하십시오.

그 책 자바 니오 당신을 도울 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top