Foros del Web » Programación para mayores de 30 ;) » Java »

duda con sockets y threads

Estas en el tema de duda con sockets y threads en el foro de Java en Foros del Web. hola a todos soy nuevo en esto de los sockets y me gustaria q me pudieran ayudar veran: Deseo hacer una aplicacion cliente-servidor con sockets ...
  #1 (permalink)  
Antiguo 04/05/2009, 22:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
duda con sockets y threads

hola a todos soy nuevo en esto de los sockets y me gustaria q me pudieran ayudar veran:
Deseo hacer una aplicacion cliente-servidor con sockets en java, les platico, el servidor debera enviar las coordenadas en donde se dio click con el raton dentro de un panel, y el cliente solo debera recibir dichas coordenadas y desplegar el mensaje "me encuentro en la posicion X,Y" la aplicacion debe ser capaz de atender a varios clientes, se q esto se hacer con threads pero les agradeceria si me ayudaran un poco
  #2 (permalink)  
Antiguo 05/05/2009, 01:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 2 meses
Puntos: 17
Respuesta: duda con sockets y threads

Lo del cliente y el servidor puedes verlo aquí

http://www.cica.es/formacion/JavaTut/Cap9/cli_ser.html

Lo adaptas a tus datos y ya está (para tu aplicación yo quitaría el temporizador)

Lo de las hebras, lo uqe tienes que hacer es poner el código de crear el socket servidor y el accept() en el main, y los códigos que transmiten y reciben en hebras.

Cuando alguien se conecte creas las hebra y llamas a "run"

Creo que no hace falta nada más.

Saludos
  #3 (permalink)  
Antiguo 07/05/2009, 18:42
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: duda con sockets y threads

gracias por la ayuda cucuru, me podrias poner un ejemplo con codigo, y si quisiera implementar el servidor en un applet y poner una imagen de fondo, se podria hacer.

Última edición por rulas6209; 07/05/2009 a las 19:01
  #4 (permalink)  
Antiguo 08/05/2009, 06:57
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 2 meses
Puntos: 17
Respuesta: duda con sockets y threads

Hola, lo que tienes que tienes que hacer es lo siguiente:

En el lado cliente: en el main intentar conectar, si se ha conectado, creas dos Thread, uno para la recepción y otro para la transmisión a los que les pasas como parámetros el socket.

En el lado servidor: en el main creas el server socket, cuando alguien se conecta creas dos Thtead (las mismas de antes)


En las thread, en el método main pones las instrucciones recepción o la transmisión según sea.

Lo del applet se puede hacer, simplemetne, cuando se le da al botón que sea pues se conecta, o crea el server socket.... El fondo se puede poner, así de memoria no me sé el método, pero si miras en Java Sun seguro que lo encuentras fácil.

saludos
  #5 (permalink)  
Antiguo 10/05/2009, 21:44
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: duda con sockets y threads

hola cucuru:
Lo de la imagen ya lo pude resolver,pero a lo q aun nole hallo es a lo de los threads, te pongo el codigo de mi servidor y le me mi cliente para q les heches un ojo y me digas q se le podria hacer.


El cliente es el siguiente:

import java.io.*;
import java.security.*;
import java.net.*;
import java.awt.*;
import javax.swing.*;
class recibe extends JFrame {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket cliente = null;
Object pub = null;
Rpizarra llego =null;
ObjectInputStream in= null;
String resultado="";
try {
serverSocket = new ServerSocket(5000);
} catch (Exception e){
System.err.println("No se puede escuchar en puerto:20002.");
System.exit(1);
}

while(true){
try {
cliente = serverSocket.accept();
in= new ObjectInputStream(cliente.getInputStream());
System.out.println("conectado");
llego = new Rpizarra();
} catch (Exception e){
System.err.println("no acepta conexion");
}
try {
while(true){
llego.escribe((String)in.readObject());
/*pub = (Object)in.readObject();

if(pub instanceof Polygon){

Polygon p = (Polygon)pub;
llego.dibuja(p);
} else {
Color c = (Color) pub;
llego.otroColor(c);
}*/
}
} catch (Exception e){
System.err.println("fin conexion");
llego.dispose();
}

}

}
}



El Servidor es el siguiente:

import java.io.*;
import java.net.*;
import java.security.*;
import java.awt.*;
class trans extends Frame {

static ObjectOutputStream out;

public static void main(String[] args) {


Socket echoSocket = null;
try {
echoSocket = new Socket(args[0],5000);
System.out.println("conectado");
out= new ObjectOutputStream(echoSocket.getOutputStream());
pizarra ob=new pizarra();

} catch (Exception e) {
System.err.println("Caught exception " + e.toString());
}
}
public static void fin(){
try {
out.close();
} catch (Exception e) {};
System.exit(0);
}
}
  #6 (permalink)  
Antiguo 11/05/2009, 00:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 2 meses
Puntos: 17
Respuesta: duda con sockets y threads

Hola, aquí tienes un ejemplo:

http://javabasico.osmosislatina.com/...l2/threads.htm

ahora lo que tienes que hacer es meter en cada hebra lo que quieras que sea concurrente.

Saludos
  #7 (permalink)  
Antiguo 11/05/2009, 01:06
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: duda con sockets y threads

Sin entrar en el codigo, hay un problema de concepto que tendrías que aclarar primero.

En una comunicacion cliente/servidor, el servidor es el que escucha esperando peticiones y el que crea el ServerSocket, y el cliente es el que inicia la comunicacion, abriendo un socket y realizandole una peticion al servidor.

Creo tienes esos conceptos al reves.

Por otro lado, para crear un servidor en un applet hay que firmar el applet, incluso si es el cliente en muchos casos hay que firmarlo. Si no, tendras problemas de seguridad. Yo empezaría montando la aplicación sin applets, paso a paso, y luego ya irás avanzando.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #8 (permalink)  
Antiguo 12/05/2009, 20:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: duda con sockets y threads

Hola GreenEyed he comprendido lo q me dices y ahora lo pienso de forma en q el cliente se conecte al servidor y pida los dos programas anteriores como un aplicacicon, ahora la duda q me surge es si esta aplicacion q se envie al cliente podria ser tambien una palicacion cliente servidor tal y como lo he manejado hasta hoy
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:36.