我已經使用java套接字編寫了一個客戶端 - 服務器程序,它工作得很好。現在我正在嘗試轉移到HTTPS以在客戶端和服務器之間進行通信。
我的代碼基於java內置套接字(Socket和ServerSocket),它工作得很好。但是,當我使用HTTPS套接字(SSLSocket和SSLServerSocket)而不更改代碼的其餘部分時,不幸的是不再工作。
該程序需要服務器和客戶端之間的持久連接,以便讓他們在幾分鐘內發送和接收數據。問題似乎是HTTPS連接在第一個事務完成後已在服務器或客戶端關閉。
更確切地說,這是發生了什麼:
1.服務器創建一個SSLServerSocket並在其上調用「accept()」。
2.客戶端創建一個SSLSocket並連接到服務器。然後通過「DataOutputStream」寫入服務器
3.服務器通過「DataInputStream」讀取客戶端,並通過「DataOutputStream」發回其響應。
4.客戶端通過「DataInputStream」讀取服務器。
一切都很好,直到現在!但在此之後,當客戶端發送另一個流時,在服務器端沒有數據將通過之前使用的相同方法在服務器上「可用()」。
有沒有辦法讓這個連接保持活着?
Tnx for ur幫助提前!Java SSLSocket不會保持活動狀態(需要使用HTTPS持久連接)
3
A
回答
1
InputStream.available()
不是檢測套接字輸入的可靠方法。因此,您沒有證據表明連接不存在。只需在讀取方法中阻止。這意味着每個客戶端都有一個專門的讀取線程。
相關問題
- 1. 連接池會保持oracle會話保持活動狀態嗎?
- 2. 使連接保持活動狀態
- 3. 配置保持活動狀態始終保持連接狀態
- 4. PHP MySQL數據庫連接多久保持活動狀態?
- 5. TCP連接持久狀態
- 6. CFNetwork持久連接(保持活力)
- 7. 斷開連接後,實時會話將保持活動狀態多久?
- 8. 什麼時候TCP套接字需要保持活動狀態?
- 9. Tornado AsyncHTTPClient HTTP持久連接支持(HTTP保持活動)
- 10. NHibernate會話需要多久/應該保持開放狀態?
- 11. 讓Watin會話保持活動狀態
- 12. Android保持活動狀態
- 13. LDAP套接字保持活動狀態
- 14. 如何使Flask /保持Ajax HTTP連接處於活動狀態?
- 15. 通過活動使藍牙保持連接狀態
- 16. 使FTP控制連接保持活動狀態
- 17. 保持iPhone網絡連接處於非活動狀態時保持活動狀態?
- 18. Apache HttpClient 4.3不保持活動狀態
- 19. HTTP持久連接vs無狀態Web
- 20. 保持TCP連接保持活動狀態並僅循環GET命令
- 21. 使屏幕保持活動狀態
- 22. 如何使用boost :: asio使套接字連接保持活動狀態?
- 23. 保持oracle連接處於活動狀態,訪問oracle
- 24. 有關TCP連接和TCP的查詢保持活動狀態?
- 25. 如何讓ezSQL連接保持活動狀態?
- 26. 發送連接頭設置爲保持活動狀態
- 27. 讓客戶端連接保持活動狀態
- 28. 響應標頭 - 連接:保持活動狀態,關閉
- 29. jQuery保持活動狀態與動作
- 30. 持續認證保持連接狀態連接
請問您可以添加一些代碼嗎?目前還不清楚「發送流」是什麼意思, – Jk1