Strumenti Utente

Strumenti Sito


lpr-b-2007-2008:copythreadmessanger
package instantMessanger;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.SocketException;
 
public class CopyThread extends Thread {
 
	InputStream is = null; 
	OutputStream os = null; 
	PrintStream ps = null; 
	String quale = null; 
 
	public CopyThread(InputStream is, OutputStream os, String quale) {
		this.is = is; 
		this.os = os; 
		this.quale = quale;
	}
 
	public CopyThread(InputStream is, PrintStream ps, String quale) {
		this.is = is; 
		this.ps = ps; 
		this.quale = quale;
	}
 
	public void run() {
		BufferedReader rdr = new BufferedReader(new InputStreamReader(is));
		if(ps==null) 
				ps = new PrintStream(os);
		String line = null;
		do {
			try {
				line = rdr.readLine();
				if(line!=null && line.equals(".")) break; // per trattare la terminazione a' la SMTP
				ps.println(line);
			} catch(SocketException e) {
				// il canale di output corrispondente è stato chiuso
				System.out.println("Canale remoto chiuso");
				break;
			} catch (IOException e) {
				e.printStackTrace();
			}
		} while(line!=null);
		System.out.println("Terminazione flusso "+quale);
		ps.close();
		System.out.println("Output stream chiuso");
		return;
 
	}
}
lpr-b-2007-2008/copythreadmessanger.txt · Ultima modifica: 19/09/2008 alle 14:08 (16 anni fa) (modifica esterna)