2012-04-22 2 views
-1

다른 도움말 스레드에서 UDP 서버에 select() 메서드를 사용하라는 지시를 받았지만이를 구현하는 방법을 모릅니다. 내 프로그램은 socket.receive() 성명서에 매달려 있었고, select()이 도움이 될 것이라고 들었다.Java - udp 용 선택기 사용 방법

감사합니다.

+2

당신은'선택 '을 사용하라는 말을 듣지 않았는데, 그것은 맹목적인 제안이었습니다. 다른 사람들이 문제의 근원에 도달하기 전에 코드를 인라인으로 게시해야합니다. – Jeffrey

+1

* 한숨 * 누군가 사용법을 말해 줄 수 있습니까? –

+0

귀하의 [마지막 게시물] (http://stackoverflow.com/questions/10262342/java-udp-applet-freezing)에서 귀하의 애플릿은 단지 두 사람의 노력이라고 말했습니다. 이 경우 일반적인 연결 당 스레드 접근 방식보다 '선택자'를 사용하면 성능 저하가 발생할 가능성이 높지만 코드를 보지 않으면 알 수 없습니다. 귀하의 문제에 대한 나의 초기 가정은 이벤트 발송 스레드를 차단하고 있지만 다시, 귀하의 코드를 알아야합니다. – Jeffrey

답변

-1

코드가 receive() 메소드에 매달려 있다면, 그것이 무엇을 해야하는지입니다. 영원히 블록하는 것을 원하지 않으면 DatagramSocket.setSoTimeout()을 적절한 값으로 호출하십시오.

포럼에서 NIO를 사용하는 방법을 묻는 것이 적절하지 않습니다. Oracle 사이트에는 자습서가 있으며 샘플 코드는 JDK에서 제공됩니다.