Título: sockets + java? Publicado por: coolfrog en 11 Octubre 2005, 22:59 pm que tal, alguien sabe como hacer una clase(servidor) que devuelva mensajes a muchos clientes.
y otra cosa mas cual es la diferencia de los streams (DataInputStream,BufferedReader, InputStreamReader y otros.....). Yo utilizo para redes el DataInputstream, pero he visto muchos ejemplos que lo hacen con el Buffer.... y otros que no conozco. Título: Re: sockets + java? Publicado por: AnKeR en 12 Octubre 2005, 00:06 am No se si entiendo muy bien la primera parte ... mensajes a muchos clientes supongo que será un servidor que pueda dar servicio a varios a la vez... Pos para eso pues creas un thread distinto para cada conexión nueva que te creen al puerto que tienes abierto.
Pues la diferencia entre los streams es mas o menos la manera que tiene de leer, o de trabajar por ejemplo el BufferedOutputStream -> no escribe hasta que se llena un buffer de un tamaño concreto... Pero cada stream es distinto eso lo mejor que puedes hacer es ir a la API de Java que es una gozada y leerte un poquillo todas esas movidillas. Salu2o3 Título: Re: sockets + java? Publicado por: coolfrog en 13 Octubre 2005, 05:21 am ya entiendo mas o menos eso, ahora mis dudas especificas las voy a poner en codigo y voy a ir explicandolas.
primero que nada tengo mi clases servidor y cliente . la clase servidor como crea un nuevo thread cada vez que se conecta un usuario: Código: public static void main(String abc[]) throws IOException{ cuando sale de ese bucle? cuando entra al catch? Ahora la clase del Thread es esta: Código: class nuevocliente extends Thread{ Las dudas en esta parte son, "while((mencli=entrada.readLine())!=null) " , que hace aqui? , por que yo vi otra forma en otros ejemplos, colocan "while(true)" ,asi: Código: while (true){ y otra cosa mas , por que es necesario el fin de linea esto ->"\n"" cuando quiero enviar datos de salida? por que si no coloco eso , no pasa nada. la parte del codigo es esta: ((nuevocliente)(clientesActivos.elementAt(i))).salida.writeBytes(IP+/*":"+host+*/" dice:"+ mencli2+"\n"); ah tambien en esta misma linea , exactamente como funciona , eso de ((nuevocliente)(clientesActivos)) es algun tipo de casting o que? por que , yo defini clientesActivos como variable global y cuando quiero hacer lo mismo pero sin el (nuevocliente) por delante, no me sale. Todo lo anterior era lo del Servidor . Ahora la parte del cliente : Código: class cliente{ Ahora , mas o menos se como funcionan los Threads(pero si quisieran explicarme un poco mas no hay problema). La clase servidor crea un nuevo Thread cada vez que se conecta un cliente, y va almacenando los clientes en un Vector, para despues enviarles los mensajes a todos. Ahora yo creia que solo se necesitaba eso pero lo que no entiendo es por que tengo que crear otro Thread en el cliente? que no es suficiente con el que utiliza el Servidor? les pido que respondan los mas rapido porfavor, es un proyecto , y el docente no quiere ayudar. gracias de antemano. Título: Re: sockets + java? Publicado por: coolfrog en 23 Octubre 2005, 05:25 am Bueno parace que nadie sabe.
Pero igual , a los que esten interesados ya hice un chat publico , al cual pueden conectarse varios clientes , no acepta privados , y esta en modo grafico. si quieren que les indique solo postean o me escriben. bueno ciao. PD: Y a ver quien me saca esas dudas que tengo. el link para los que quieren descargar es : Código: http://parti.shinranet.com/chat3.rar |