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

manejo de socket

Estas en el tema de manejo de socket en el foro de Java en Foros del Web. hola todos tengo un problema que es el siguiente lo que quiero hacer es por el socket que el cliente se conecte y cuando se ...
  #1 (permalink)  
Antiguo 25/08/2005, 17:09
 
Fecha de Ingreso: mayo-2004
Ubicación: SurOeste de Guayaquil
Mensajes: 241
Antigüedad: 20 años
Puntos: 0
De acuerdo manejo de socket

hola todos tengo un problema que es el siguiente
lo que quiero hacer es por el socket que el cliente se conecte
y cuando se conecte se almacene en un arreglo para poder identificarlo por cada cliente que se contecte, pero cuando el cliente envie algo adjuntado un codigo le envie al otro cliente no se como hacer esto

aqui le adjunto el server
el cliente se aria por telnet 127.0.0.1 59748


import java.net.*;
import java.io.*;

public class EchoServer
{
ServerSocket m_ServerSocket;


public EchoServer()
{
try
{
m_ServerSocket = new ServerSocket(59748);
}
catch(IOException ioe)
{
System.out.println("No se pudo crear el server socket en el puerto 59748. Verifique el puerto.");
System.exit(-1);
}

System.out.println("Escuchando clientes en el puerto 59748...");

int id = 0;
while(true)
{
try
{

Socket clientSocket = m_ServerSocket.accept();


ClientServiceThread cliThread = new ClientServiceThread(clientSocket, id++);
cliThread.start();
System.out.println( id );

}
catch(IOException ioe)
{
System.out.println("Exception encountered on accept. Ignoring. Stack Trace :");
ioe.printStackTrace();
}
}
}

public static void main (String[] args)
{
new EchoServer();
}


class ClientServiceThread extends Thread
{
Socket m_clientSocket;
int m_clientID = -1;
boolean m_bRunThread = true;

ClientServiceThread(Socket s, int clientID)
{
m_clientSocket = s;
m_clientID = clientID;
}

public void run()
{

BufferedReader in = null;
PrintWriter out = null;


System.out.println("Cliente Aceptado: ID - " + m_clientID + " : Address - " +
m_clientSocket.getInetAddress().getHostName());

try
{
in = new BufferedReader(new InputStreamReader(m_clientSocket.getInputStream()) );
out = new PrintWriter(new OutputStreamWriter(m_clientSocket.getOutputStream( )));

out.println("[ pw 1234 cm 28");
out.flush();


while(m_bRunThread)
{

String clientCommand = in.readLine();

System.out.println("Client Dice :" + clientCommand);


if(clientCommand.charAt (0) == '<')
System.out.println("prueba : ");

System.out.println(" mundo "+ m_clientID);

if(clientCommand.equalsIgnoreCase("salir"))
{
m_bRunThread = false;
System.out.print("El cliente se ha desconectado del hilo : " + m_clientID);
}
else
{
out.println("[ pw 1234 cm 28");
out.flush();
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{

try
{
in.close();
out.close();
m_clientSocket.close();
System.out.println("...Parado");
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
}
}
}
__________________
javier
  #2 (permalink)  
Antiguo 26/08/2005, 12:34
 
Fecha de Ingreso: agosto-2005
Mensajes: 95
Antigüedad: 18 años, 8 meses
Puntos: 0
Tu tienes una aplicacion servidor que escucha todas las peticiones de los clientes y tienes unos cliente que envian estas peticiones bueno a la aplicacion cliente tambien lo creas como un servidor para que este resiva las respuestas del servidor principal.

Podria ser una solucion.
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 08:25.