Hola, estoy realizando una aplicacion de socket en java con entorno grafico, la cual hace lo siguiente:
quiero enviar un fichero desde el cliente 1 al cliente 2, pero pasando por la centralita, que es el medio de comunicacion entre los dos clientes.
yo he realizado el codigo pero no esta correcto, ya que he empezado a tocar este tema de los socket hace poco tiempo, asi que me gustaria que me ayudaseis, os pongo aqui el codigo que he realizado.
ENTORNO GRAFICO DE LOS CLIENTES
El entorno gragico tiene 2 campos de texto, 1 para insertar el puerto por el que se comunican y otro para colocar la ruta del fichero que se quiere enviar, un textarea que es donde se van a poner todas las incidencias que vayan ocurriendo en el transcuso de la comunicacion y 2 botones, 1 para enviar y otro para recibir.
ENTORNO GRAFICO DE LA CENTRALITA
la centralita consta de 1 textarea que es donde se muestran los mensajes de lo que se va haciendo en el transcurso de la comunicacion y 2 botones, enviar y recibir.
------CODIGO DE LOS CLIENTES-----------
Código java:
Ver originalimport java.io.*;
public class Cliente_B
extends javax.
swing.
JFrame { /** Creates new form Cliente_B */
public Cliente_B() {
initComponents();
try
{
//sck=new java.net.Socket("localhost", this.txt_puerto_cliente_A.getText());
sck
=new java.
net.
Socket("localhost",
9902);//"aqui va el puerto" }
{
this.txa_cliente_B.append("1. Error de E/S con excepcion: "+ex);
}
}
// BOTON ENVIAR
private void btn_enviar_cliente_BActionPerformed
(java.
awt.
event.
ActionEvent evt
) { // TODO add your handling code here:
try
{
enviar=this.txa_cliente_B.getText();
dos.writeUTF("\n"+enviar);
this.txa_cliente_B.append("\nEnviando mensaje ..."+enviar);
dis.close();
dos.close();
sck.close();
}
{
this.txa_cliente_B.append("2. ERROR de E/S con excepcion: "+ex);
}
}
// BOTON RECIBIR
private void btn_recibir_cliente_BActionPerformed
(java.
awt.
event.
ActionEvent evt
) { // TODO add your handling code here:
try
{
mensaje_B=dis.readUTF();
this.txa_cliente_B.append(mensaje_B);
this.txa_cliente_B.append("Fin de transmision ...");
}
{
this.txa_cliente_B.append("3. Error de E/S con excepcion"+ex);
}
}
------CODIGO CENTRALITA-----------
Código java:
Ver originalimport java.io.*;
public class Centralita
extends javax.
swing.
JFrame { /** Creates new form Centralita */
public Centralita() {
initComponents();
}
// BOTON ENVIAR
private void btn_enviar_centralitaActionPerformed
(java.
awt.
event.
ActionEvent evt
) { // TODO add your handling code here:
try
{
sck1=ssckserver1.accept();
fich
=new java.
io.
File("./datos.txt");
if (fich.exists())
{
mensaje=br.readLine();
while (mensaje!=null)
{
if(sck1.isConnected())
{
dos1.writeUTF(mensaje);
this.txa_centralita.append("\nEnviando al cliente... "+mensaje);
}
else
{
this.txa_centralita.append("\nCliente 1 desconectado.");
}
}
dos1.close();
sck1.close();
ssckserver1.close();
}
else
{
this.txa_centralita.append("El fichero elegido no existe.");
}
}
{
this.txa_centralita.append("Error de E/S con excepcion: "+ex);
}
}
// BOTON RECIBIR
private void btn_recibir_centralitaActionPerformed
(java.
awt.
event.
ActionEvent evt
) { // TODO add your handling code here:
try
{
sck1=ssckserver1.accept();
fich
=new java.
io.
File("./datos.txt");
if (fich.exists())
{
mensaje=br.readLine();
while (mensaje!=null)
{
if(sck1.isConnected())
{
dos1.writeUTF(mensaje);
this.txa_centralita.append("\nEnviando al cliente... "+mensaje);
}
else
{
this.txa_centralita.append("\nCliente 1 desconectado.");
}
}
dos1.close();
sck1.close();
ssckserver1.close();
}
else
{
this.txa_centralita.append("El fichero elegido no existe.");
}
}
{
this.txa_centralita.append("Error de E/S con excepcion: "+ex);
}
}