2012-02-15 60 views
0

有時候我EOFException的時候,當我嘗試打開與EOFException類試圖打開與Connector.open()TLS連接

Connector.open("tls://sub.domain.com:443;deviceside=true;interface=wifi;EndToEndRequired"); 

Connector.open()呼叫阻止TLS連接的Wi-Fi扔在黑莓手機。調用Connector.open()後約10秒拋出EOFException。目前,我無法檢查服務器端發生了什麼。

編輯:
至Connector.open()的調用由一個線程,是不是主要事件的線。問題出現在運行OS 6的各種設備上,但我認爲問題不是特定於操作系統的。

關於如何解決這個問題或者什麼可能導致錯誤的想法?

更新
在某些情況下,調用Connector.open()也產生包裹在裏面TLSIOException一個TLSAlertException。例外情況不是立即拋出,而是像之前提到的EOFException約10秒之後。

+2

有兩個問題:1)你確定Connector.open()拋出異常嗎? 2)你是否在OS事件線程的獨立線程上調用Connector.open()? – Richard 2012-02-15 19:28:23

+0

是的,Connector.open()拋出異常並且是,它是從一個不同的線程(不是主線程)調用的。 – mrvincenzo 2012-02-16 05:49:28

+1

除非在異常消息中有某種診斷(不幸的是不太可能)或堆棧跟蹤,否則我會懷疑服務器正在拋出黑莓不期望的東西。也許建立一個你可以檢查的服務器,或者如果它在其他代碼的上下文中有意義,可以嘗試使用已知好的服務器的站點。我使用這種連接與安全的網絡服務器通話,但通常使用https協議。 – Richard 2012-02-16 23:25:02

回答

0

最後,我還是能夠捕捉到TLS握手在服務器端,我看到以下內容:

  1. 服務器接收到的客戶您好消息
  2. 服務器迴應服務器Hello消息
  3. 客戶端密鑰交換約10秒未收到客戶端
  4. 服務器關閉與客戶端的連接

因爲我看不出有什麼辦法在Connector.open()流影響,我能做的唯一的事情是重試(我從來沒有見過它連續發生兩次)catch後,荷蘭國際集團無論是EOFExceptionTLSAlertException(和其他可能的TLS相關例外)。