2012-12-21 2 views
0

시간이 지남에 따라 많은 연결을받는 서버 응용 프로그램에서 작업 해 왔습니다. 이를 처리하기 위해 표준 Java NIO 클래스를 사용하여 비 차단 디자인을 구현했습니다. 그러나 처리해야 할 세부 사항이 많이 있으며, 일종의 프레임 워크를 선호합니다. 가급적 스프링 통합을 사용하고 싶지만 간단하고 실제적인 예제를 찾을 수는 없습니다.EchoServer에 텔넷 Grizzly 샘플 응용 프로그램

대신 나는 내가 필요로하는 기능을 제공하는 것처럼 보이는 Grizzly 프레임 워크를 평가 중입니다. EchoServer example을 구현했지만 서버에 텔넷 할 수 없어서 결과가 콘솔에 다시 표시됩니다. 그들의 EchoClient 응용 프로그램은 예상대로 작동합니다.

제 경우에는 저에게 연결하려는 클라이언트에 대한 어떤 가정도 할 수 없으므로 간단한 텔넷 클라이언트에서 NIO 클라이언트까지 모든 것을 지원할 수 있어야합니다. 그리즐리가이 작업을 수행 할 수 있습니까? 그렇다면 어떻게 할 수 있습니까?

+0

, 그것은 살펴 본다 가치가있을 수도 있습니다 [Netty Framework] (http://netty.io/) - NIO 클라이언트 및 서버를 구축하기위한 또 다른 프레임 워크입니다. – Jonathan

답변

0

작업중인 샘플은 StringFilter가 구현 한 특수 입력 형식을 기반으로합니다. StringFilter는 문자열을 문자열 길이 접두사가있는 바이트 시퀀스로 디코딩/인코딩합니다. 텔넷이 문자열을 인코딩하는 데 동일한 형식을 사용하지 않기 때문에 서버가 데이터를 다시 에코하지 않습니다. 텔넷으로 서버를 작동하게하기 위해 - 단지 서버의 FilterChain에서 StringFilter (이 라인을 주석)를 제거 : 당신이 이미하지 않은 경우, 여담으로

//   filterChainBuilder.add(new StringFilter(Charset.forName("UTF-8"))); 
+0

이것을 지적 해 주셔서 감사합니다. 나는 Grizzly를 시험해보고자 서둘러서, StringFilter는 보일러 판 코드를 인코딩하는 문자처럼 보였다. 나는 길이 인코딩이 관련되어 있다는 것을 깨닫지 못했다. 당신의 도움을 주셔서 감사합니다! – user1283068

관련 문제