我試圖從5個串口連接的設備讀取數據。如果設備健康,我的Java代碼運行良好,如果不是,則inputstream.read()
掛起程序並且不允許進一步執行。如何在java中結束inputstream.read
我試過使用inputstream.available()
,BufferedInputStream
...但沒有任何效果。
我想要做的是:如果設備沒有響應我的代碼,它應該自行結束,讓控制權轉到主程序,它將轉到下一個設備。套接字在輪詢一個週期內保持打開狀態。
Socket es = new Socket("10.12.90.153",4001);
OutputStream osnew= es.getOutputStream();
InputStream isnew = new BufferedInputStream(es.getInputStream());
這在任務程序完成,然後我通過osnew
和isnew
到每個設備以一秒的進一步行動的間隙。 osnew
寫入設備響應的一些數據。然後我從isnew
讀取...這是程序掛起的地方。
你能寫一個像while(value!= null){value = read()}這樣的循環嗎?低於該循環,你可以編寫你的退出程序 – sotix
我認爲http://stackoverflow.com/q/804951/946328的答案可以幫助你 –