2011-07-27 6 views

답변

2

TTL은 포기하기 전에 통과 할 수있는 라우터의 수를 알려주고 Keep Alive는 연결이 끊어지기까지 걸리는 시간을 알려줍니다.

내가 링거에 대해 읽은 것에서, 나는 계속 살아있는 것과의 차이를 보지 못했고, 나는 여기서 뭔가를 놓칠지도 모른다.

EDIT : linger 옵션을 사용하면 데이터가 여전히 유선에 있는지 확인하기 위해 잠시 기다리라는 메시지를 표시하면서 소켓을 닫을 수 있습니다. this page에서, 우리는 당신이 소켓을 닫습니다

여전히 후 나가는 네트워크 버퍼에 사용 가능한 데이터가있을 수 있습니다 읽어 보시기 바랍니다. Socket이 닫은 후 보내지 않은 데이터를 전송하려고하는 시간을 지정하려면 enabled 매개 변수가 true로 설정된 LingerOption을 만들고 매개 변수를 원하는 시간으로 설정합니다. seconds 매개 변수는 으로 소켓이 얼마나 오래 지연되어서 시간이 초과되기 전에 에 연결되어 있는지 나타냅니다. 닫기 후에 Socket이 에 머무르지 않게하려면 LingerOption 을 생성하고 enabled 매개 변수를 false로 설정하십시오. 이 경우 소켓은 즉시 닫히고 보내지 않은 데이터는 손실됩니다. 만들어지면 LingerOption을 Socket.SetSocketOption 메서드에 전달합니다. TcpClient를 사용하여 데이터를 보내고받는 경우 LingerOption을 TcpClient.LingerState 메서드에 전달합니다. 살

+0

되 보내거나받을 때 소켓이 열려있는 시간 디바이스 (홉) 네트워크 패킷을 가로 지른다 수이다 고마워. Linger를 사용하는 것은 무엇입니까? –

+0

나는 linger에 대해 발견 한 것과 함께 대답을 편집했습니다. – samy

+0

linger 옵션을 사용하여 TCP 연결에서 TIME-WAIT 상태를 건너 뛸 수 있습니다. 이 상태를 건너 뛸 수도 있지만 건너 뛰기의 결과를 알아 두십시오 !! 우리는 HTTP/1.0 서버 (많이)와 통신하는 동안 링거 옵션이 매우 유용하다는 것을 알았습니다. – Chris

1

시간 생존 시간을 유지 (라우터, 스위치 등 같은) 데이터가

+0

감사합니다. Linger를 사용하는 것은 무엇입니까? –