All pastes #204182 Raw Edit

redes t3

public java v1 · immutable
#204182 ·published 2006-10-15 18:46 UTC
rendered paste body
import java.io.* ;import java.net.* ;import java.util.*;public class EchoServer implements Runnable {	public static final int PORT = 8000 ;		Socket clientSocket;	Vector <EchoServer> serverList;		EchoServer(Socket clientSocket, Vector<EchoServer> v){		this.clientSocket = clientSocket;		this.serverList = v;	}		public void run(){				try {		// Obt&#65533;m os canais de entrada/sa&#65533;da do socket para 		// comunicar com o cliente		InputStream is = clientSocket.getInputStream();		OutputStream os = clientSocket.getOutputStream() ;		// Implementa a fun&#65533;&#65533;&#65533;o ECHO, copiando os dados da canal de entrada,		// directamente, para o canal de sa&#65533;da, at&#65533; que o cliente feche a liga&#65533;&#65533;o		// Nota: o read retorna o n&#65533;mero de bytes lidos ou 0, 		// quando n&#65533;o h&#65533; mais nada para ler do canal de entrada do socket,		// situa&#65533;&#65533;o que resulta do socket ter sido fechado do outro lado		// da liga&#65533;&#65533;o...		int n ;		byte[] buf = new byte[1024] ;		for(int i = 0; i < serverList.size(); i ++){			while( (n = is.read( buf )) > 0 )				os.write( buf, 0, n ) ;			//Fecha e liberta o socket que usou para comunicar com o cliente...			clientSocket.close();		}		} catch (IOException e) {}	}		public static void main(String args[] ) throws Exception {		// Cria o socket de atendimento do servidor, de onde		// se aceitam as conex&#65533;es dos clientes				ServerSocket serverSocket = new ServerSocket( PORT ) ;		Vector<EchoServer> v = new Vector(); 				for(;;) { // ciclo infinito de atendimento						// Espera at&#65533; que um cliente se ligue ao servidor,			// retorna o socket para comunicar com o cliente			Socket clientSocket = serverSocket.accept();			EchoServer xpto = new EchoServer(clientSocket, v);//mandar o socket e o vector			v.add(xpto);			for(int i = 0; i < v.size(); i ++){				Thread t = new Thread (v.get(i));				t.start();			}									}	}}