Java 소켓을 사용하여 클라이언트 - 서버 프로그램을 작성했으며 정상적으로 작동합니다. 이제 클라이언트와 서버 간의 통신을 위해 HTTPS로 이동하려고합니다.
내 코드는 Java 내장 소켓 (소켓 및 ServerSocket)을 기반으로하며 잘 작동합니다. 그러나 HTTPS 소켓 (SSLSocket과 SSLServerSocket) 을 나머지 코드을 변경하지 않고 사용하면 불행하게도 더 이상 작동하지 않습니다.
프로그램에서 서버와 클라이언트간에 분당 데이터를 보내고받을 수 있도록 영구 연결이 필요합니다. 문제는 첫 번째 트랜잭션이 완료된 후 서버 또는 클라이언트 측에서 HTTPS 연결이 닫혀있는 것 같습니다.
좀더 정확하게 말하면 다음과 같습니다.
1. 서버는 SSLServerSocket을 만들고 "accept()"를 호출합니다.
2. 클라이언트가 SSLSocket을 만들고 서버에 연결합니다. 그런 다음 "DataOutputStream"을 통해 서버에 씁니다.
3. 서버는 "DataInputStream"을 통해 클라이언트를 읽고 "DataOutputStream"을 통해 응답을 보냅니다.
4. 클라이언트가 "DataInputStream"을 통해 서버를 읽습니다.
지금까지는 모든 것이 괜찮습니다! 그러나 클라이언트가 다른 스트림을 보내면 서버 측에서 이전에 사용한 것과 동일한 방법을 통해 서버에서 "available()"데이터를 얻을 수 없습니다.
이 연결을 유지할 수있는 방법이 있습니까?
ur에 대한 Tnx는 사전에 도움이됩니다!Java SSLSocket이 지속되지 않음 (HTTPS 영구 연결 필요)
3
A
답변
1
InputStream.available()
은 소켓 입력을 감지하는 신뢰할만한 방법이 아닙니다. 따라서 연결이 살아 있지 않다는 증거가 없습니다. 읽기 방법으로 차단하십시오. 이는 클라이언트 당 읽기 전용 스레드를 의미합니다.
관련 문제
- 1. Eclipse 플러그인 : 영구 마커가 지속되지 않음
- 2. VirusTotal HTTPS 연결 Java
- 3. https URL에 Java 연결
- 4. Java HTTPS 연결 전달
- 5. HTTPS 연결 java CertificateException
- 6. 영구 h2 db가있는 ormlite - 새 테이블이 지속되지 않음
- 7. mvn.riptano.com 인증되지 않음 연결, 연결 인증 필요
- 8. 부두에서 트랜잭션이 지속되지 않음
- 9. SSLSocket이 도메인 불일치를 무시합니다.
- 10. SignalR 2 연결이 지속되지 않음
- 11. 이미지가 지속되지 않음 DataViewAdapter
- 12. Spark에서 메모리가 지속되지 않음
- 13. JPA 캐스케이드 지속되지 않음
- 14. SharedPreferences가 저장/지속되지 않음
- 15. 노드가 Neo4j에 지속되지 않음
- 16. Express 세션이 지속되지 않음
- 17. Flask 세션이 지속되지 않음
- 18. PHP 세션이 지속되지 않음
- 19. 지속성 단위가 지속되지 않음
- 20. NSManagedObjectContext 저장하지만 지속되지 않음
- 21. 코어 데이터가 지속되지 않음
- 22. 유효성 검사가 지속되지 않음
- 23. Passport.js가 Firefox에서 지속되지 않음
- 24. 데이터베이스에 대한 영구 연결?
- 25. 스프링 WebServiceTemplate 영구 연결
- 26. ASP.Net MVC 쿠키가 지속되지 않음
- 27. Amistad Mongoid Save가 지속되지 않음
- 28. localStorage.setItem이 새로 고침시 지속되지 않음
- 29. Canopy Express python이 지속되지 않음
- 30. Google 크롬에서 window.name이 지속되지 않음
코드를 추가해주세요. 순간에 "스트림 보내기"가 의미하는 것이 명확하지 않습니다. – Jk1