我有,我需要捕獲來自設備的一些信息的代碼。該設備有一個插座連接。基本上是這樣的:插槽始終超時到底
我發送的命令有這樣的返回:
<some info>
<some info>
<some info>
<some info>
1.551
1.689
... (A bunch of those numbers)
1.258
<more info>
我需要的一部分,但是是垃圾我。
最前一頁嘗試:
read <somne info>
reached empty line?
start getting the points
reached the points total amount?
break the loop
這方面的工作。有時候出於某種原因,下一次我在socket上進行的讀操作(發送一個命令並期待一個單行的答案)給了我一些來自這個套接字讀取的垃圾。只是有時候。
我試着這樣做:
read <somne info>
reached empty line?
while !EOF
is number?
read
end
所以。這讀取我需要的一切。但是,當到達終點給我一個IOException異常:紅色超時
我知道有什麼留給閱讀,所以我怎麼能避免呢?
對不起,我沒有實際的代碼不正確我,但基本上這就是問題所在:越來越具有讀超時異常在這個循環結束:
while((line = readLine()) != null){
//read stuff
}
好的。讓我們暫停,我決定在超時時間結束閱讀。我得到了一個IOException,我怎麼會認爲這個IOException異常是超時? – lcguida
@Rockskull Catch'SocketTimeoutException.' – EJP
我會試試看,但是根據Java Docs,SocketTimeoutException和connect方法一起被拋出。 – lcguida