java 및 클라이언트 프로그램이 있습니다. 서버가 Wi-Fi를 통해 클라이언트에 데이터를 보내고 있습니다. 클라이언트에서 Wi-Fi 연결이 끊어지면 예외가 발생하고 수신 루프에서 빠져 나옵니다. 서버는 여전히 데이터를 계속 전송합니다. 서버가 사용하는 메소드는 oos.writeObject()입니다. 어떻게하면 서버에서 클라이언트에서 wifi의 중단을 감지하고 서버가 송신 루프에서 빠져 나갈 수 있습니까?연결 손실 감지
연결 손실 감지
답변
클라이언트가 (일부 유형의 wifi 연결 실패 모드에서) 연결이 끊어지면 즉시 알려주는 이유는 wifi 인터페이스가 클라이언트에 로컬이고 운영 체제가 곧바로 컴퓨터를 찢어지기 때문입니다 아래로 감지되었습니다. 서버의 관점에서 볼 때 멀쩡한 네트워크 링크입니다.
연결이 끊어지면 처음에는 서버가 계속 데이터를 버퍼링합니다. 버퍼 (서버의 운영 체제 버퍼와 TCP 창 크기)가 꽉 차면 더 많은 데이터를 보내려고하면 서버가 차단됩니다.
나중에 연결이 끊어지면 서버는 연결 시간이 초과되었다는 것을 알리고 예외가 발생합니다. 대신 연결이 다시 시작되면 버퍼가 비워지고 정상적인 데이터 흐름이 다시 시작됩니다.
멀리 할 수있는 네트워크 홉이 실패하면 즉시 서버의 연결 시간이 초과되도록 실제로는 변경하고 싶지는 않습니다. 그렇게했다면 연결이 매우 약해집니다. 작은 네트워크 재 컨버전스 이벤트 또는 짧은 일시적인 실패로 인해 연결이 끊어 질 수 있습니다.
설명에 감사드립니다. 난 그냥 몇 가지 고정 된 기간 후 atleast 연결을 닫기 위해 여기에 사용할 수있는 읽기에 대한 setSoTimeout()와 비슷한 방법이 있는지 알아야합니다. – user1761399
예 : 신호를 사용하거나 쓰고있는 쓰레드를 취소하거나 논 블로킹 I/O를 사용하고 소켓이 원하는 시간이 지난 후에 쓰려고하지 않으면 포기할 수 있습니다. – Celada
Can 비 차단 I/O 또는 신호를 사용하여 글쓰기를 포기하는 링크로 안내합니다. 소켓에 쓰기가 가능하지 않다는 것을 어떻게 감지합니까? – user1761399
- 1. JMS 손실 감지 방법 주제 연결
- 2. 서버와 클라이언트 간의 연결 손실 감지
- 3. JavaScript에서 포커스 손실 감지
- 4. iphone 손실 감지 방법
- 5. 코르도바 어플에서 인터넷 손실 감지
- 6. 비동기 소켓 손실 연결
- 7. ASP.NET 연결 손실 처리
- 8. FileSystemWatcher의 연결 손실 처리
- 9. 연결 감지
- 10. 연결 풀링 : 손실 된 DB 연결 검색
- 11. Android에서 네트워크 연결 감지 중
- 12. 사육사 오류 연결 손실 예외
- 13. Autobahn Server 연결 손실 문제
- 14. 하려면 openssl s_client가 손실 연결
- 15. 안드로이드 - 웹 서비스 연결 손실
- 16. MYSQL의 connector.net 연결 오랜만에 손실
- 17. 코코아에서 NSTableView에 대한 포커스 손실 감지
- 18. Silverlight 응용 프로그램에서 키보드 포커스 손실 감지
- 19. WPF 컨트롤 그룹에서 포커스 손실 감지
- 20. 범용 앱 감지 시작 포커스가 손실 됨
- 21. 연결 풀 감지
- 22. Firefox에서 연결 재설정 감지
- 23. 인터넷 연결 감지
- 24. NIO - 닫힌 연결 감지
- 25. 끊어진 연결 감지
- 26. 소켓 연결 해제 감지
- 27. 인터넷 연결 감지
- 28. HDMI 연결 감지
- 29. 도메인에 대한 연결 감지
- 30. 네트워크 연결 감지
TCP 또는 UDP 또는 다른 프로토콜? – Celada
사용 된 프로토콜은 TCP입니다. – user1761399