2011-03-17 6 views
1

클라이언트가 서버 프로세스에 대한 연결을 설정합니다. 서버가 클라이언트가 계속 연결되어 있음을 어떻게 알 수 있습니까?서버는 클라이언트가 아직 연결되어 있음을 어떻게 알 수 있습니까?

예를 들어, 서버는 웹 서버이고 클라이언트는 브라우저입니다. 서버가 항상 클라이언트가 연결되었음을 알고 싶어한다는 요구 사항이 있다고 가정 해 봅시다.

어떻게 구현/설계 되었습니까?

답변

0

당신이 소켓에 대해 말하고 있다고 가정합니다.

클라이언트가 연결을 끊으면 연결이 끊어지기 때문에 서버는 클라이언트가 계속 연결되어 있음을 알게됩니다. 서버는 TCP의 정상적인 동작의 일부로서 이것을 통지받을 것이므로 관련 소켓은 더 이상 연결과 관련이없는 것으로 표시됩니다.

서버 프로세스가이 소켓에서 읽거나 쓰게되면 연결이 더 이상 존재하지 않는다는 메시지가 표시됩니다.

0

TCP가 사용되고 있다고 가정하면 다른 쪽의 연결이 끊어지면 소켓에서 0 바이트 읽기가 수신됩니다. 이것은 연결이 닫혔 음을 나타냅니다.

연결이 닫힌 상태에서 서버가 소켓에 데이터를 쓰는 경우 연결이 닫혔다는 알림을 받지만이 알림이 구현 된 방식과 정확히 일치하는지 여부는 서버에 따라 다릅니다.

관련 문제