...
Code Block | ||
---|---|---|
| ||
class StopSocket extends Thread { protected Socket s; public void run() { try { s = new Socket("somehost",25); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); String s = null; while((s = br.readLine()) != null) { // blocks until end of stream (null) } System.out.println("Blocked, will not get executed until some data is received. " + s); }catch (IOException ie) { System.out.println("Performing cleanup"); } finally { System.out.println("Closing resources"); try { if(s != null) s.close(); } catch (IOException e) { e.printStackTrace(); } } } public void shutdown() throws IOException { if(s != null) s.close(); } } class Controller { public static void main(String[] args) throws InterruptedException, IOException { StopSocket ss = new StopSocket(); Thread t = new Thread(ss); t.start(); Thread.sleep(1000); ss.shutdown(); } } |
...