2014-03-19 4 views
1

저는 Java 소켓 프로그래밍과 Netty 모두 초보자입니다. 현재 우리는 우리 자신의 소켓 상태를 관리하는 순수 Java 소켓 연결을 사용하는 응용 프로그램을 가지고 있습니다.netty가 Socket의 건강을 관리하는 방법

netty가 소켓을 관리하는 방법을 알고 싶습니다. 포트가 열려있는 기간은 얼마입니까? 소켓 연결을 끊으면 어떻게됩니까? Netty가 tcp 세션을 어떻게 유지합니까?

답변

3

Netty는 기본 TCP 소켓 세부 정보를 관리하는 것과 관련하여 완전히 투명합니다.

포트를 열려면 얼마나 걸립니까?

Netty는 기본적으로 채널에 SO_TIMEOUT을 설정할 수 있습니다. 이는 기본적으로 읽기 타임 아웃 경고를 발생시키는 tcp 속성이며 이에 응답하고 원하는 경우 연결을 끊을 코드를 작성할 수 있습니다.

소켓 연결이 끊어 경우 무슨 일이 일어날 지

ChannelOptions를 참조하십시오?

SimpleChannelUpstreamHandler를 사용하는 경우 해당 channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e)이 호출됩니다. 의 Netty는 TCP 세션을 유지하고 어떻게

SimpleChannelUpstreamHandler를 참조하십시오?

정확하게 무엇을 의미하는지 모르지만 근본적으로 TCP 프로토콜에서 사용 된 것과 동일한 메커니즘입니다.

+0

SO_TIMEOUT은 읽기 타임 아웃입니다. 연결이 끊어지는 것을 유발하지 않으며, 비 차단 모드이므로 Netty는 연결을 관찰하지 않습니다. – EJP

+0

@EJP - 직접 고쳤습니다. 지적 해 주셔서 고마워요. Netty는 사용하려는 경우 블로킹 모드도 제공합니다. – Bhaskar

+0

SO_TIMEOUT은 OIO 전송에 대해서만 작동하며 Netty는 연결을 닫지 못하거나 예외 또는 경고를 발생시키지 않습니다. – trustin

관련 문제