Como va la gente del foro, Desde ya un saludo para todos.
Vengo de beraza a manguearles una manito. Estoy programando un chat, como se puede leer, y estoy medio trabado, en un par de cuestiones. que creo que son de concepto, o inexperiencia.
Bueno les comento, hasta ahora hice el servidor y el cliente, a lo que quiero llegar es a conectar varios clientes al servidor y que se comuniquen entre ellos por medio del servidor algo muy complicado para mi al menos, hay algunos conceptos que no los tengo bien en claro por eso venia a pedirles una mano, no que me lo programen y me lo manden sino que me explique algunas dudas. Ya que copiarlo no me sirve.
todavia me faltan programar partes. la de cerrar conexciones. y la de envios de datos del servidor a todos los usuarios conectados. no comprendo como hacer eso.. creo que tengo que usar hilos y cada hilo generado en el servidor.. para cada socket conectado.. y cada hilo guardarlo en una matriz.. para saber a donde enviarlo.. creo que tengo que ir por ese paso..
CLIENTE
Código: java
SERVIDOR
Código: java
Espero puedan ayudarme.
Desde ya un saludo grande. y seguiré investigando.
Vengo de beraza a manguearles una manito. Estoy programando un chat, como se puede leer, y estoy medio trabado, en un par de cuestiones. que creo que son de concepto, o inexperiencia.
Bueno les comento, hasta ahora hice el servidor y el cliente, a lo que quiero llegar es a conectar varios clientes al servidor y que se comuniquen entre ellos por medio del servidor algo muy complicado para mi al menos, hay algunos conceptos que no los tengo bien en claro por eso venia a pedirles una mano, no que me lo programen y me lo manden sino que me explique algunas dudas. Ya que copiarlo no me sirve.
todavia me faltan programar partes. la de cerrar conexciones. y la de envios de datos del servidor a todos los usuarios conectados. no comprendo como hacer eso.. creo que tengo que usar hilos y cada hilo generado en el servidor.. para cada socket conectado.. y cada hilo guardarlo en una matriz.. para saber a donde enviarlo.. creo que tengo que ir por ese paso..
CLIENTE
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class meloCliente {
String ip = "127.0.0.1",usuario, mensajeDis, mensajeDos;
int port = 6666;
Socket tcp;
Scanner sc;
boolean flag =true;
public void llamEsqueletor() {
}
public void closePort() {
}
public void getDatain() throws IOException{
DataInputStream dis = new DataInputStream(tcp.getInputStream());
mensajeDis = dis.readUTF();
System.out.println("Msj << "+ mensajeDis);
}
public void setDataOutPack() throws IOException {
DataOutputStream dos = new DataOutputStream(tcp.getOutputStream());
System.out.print(" >> ");
mensajeDos = this.crateMsj();
String packet = this.usuario + "-" + mensajeDos;
dos.writeUTF(packet);
// falta enviarlo...
}
public String crateMsj(){
sc = new Scanner(System.in);
String teclado = sc.nextLine();
return teclado;
}
public void openConex() throws SocketException, IOException{
tcp = new Socket(ip, port);
if(tcp.isConnected()){System.out.println("Cliente <<"+ usuario +">> conectado al Servidor.");}
}
public static void main(String[] args) throws IOException, SocketException{
meloCliente mC = new meloCliente();
mC.LeyendaUsr();
mC.openConex();
while(mC.flag){
mC.setDataOutPack();
}
}
public void LeyendaUsr() {
sc = new Scanner(System.in);
System.out.println(" ·~ Cliente Mensajeria. v0.1 "+ "\n");
System.out.println("# Apodo de red: \n");
usuario = sc.nextLine();
}
}
SERVIDOR
import java.net.*;
import java.io.*;
import javax.swing.JOptionPane;
import java.util.Scanner;
public class Serv{
ServerSocket ss;
Socket s ;
JOptionPane panelDat;
boolean flag = true;
Scanner sc;
int cont =0;
public void openPort() throws IOException{
System.out.println("# Abriendo puertos.");
ss = new ServerSocket(6666);
}
public void aceptCli() throws IOException{
System.out.println("# Esperando solicitud de cliente...");
s = ss.accept();
cont++;
System.out.println("# Cliente conectado. Datos." + s.getInetAddress()+"-"+ s.getPort()+ " Cliente Nro:" + cont);
}
public void sendPack() throws IOException{
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
}
public void getDatain() throws IOException{
DataInputStream dis = new DataInputStream(s.getInputStream());
String mensajeDis = dis.readUTF();
System.out.println(mensajeDis);
}
public void closePort() {
}
public static void main(String[] args)throws IOException {
Serv sev = new Serv();
sev.leyenda();
sev.openPort();
sev.aceptCli();
while(sev.flag){
sev.getDatain();
}
System.out.println("·~ Servidor");
}
public void leyenda() {
System.out.println(" ·~ Servidor Mensajeria v0.1." + "\n");
}
}
Espero puedan ayudarme.
Desde ya un saludo grande. y seguiré investigando.