Programacion en Red - Java : InetAddres
HOSPITAL
SERVER SOCKET (DIRECTOR)
Servidor Chat:
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.DefaultListModel;
public class ServidorChat {
private DefaultListModel charla = new DefaultListModel();
/** Creates a new instance of ServidorChat */
public ServidorChat() {
try
{
ServerSocketsocketServidor = new ServerSocket(6011);
while (true)
{
Socket cliente = socketServidor.accept();
Runnable nuevoCliente = new HiloDeCliente(charla, cliente);
Thread hilo = new Thread(nuevoCliente);
hilo.start();
}
} catch (Exception e)
{
e.printStackTrace();}
}
public static void main(String[] args) {
new ServidorChat();
}
}
Panel Cliente:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
importjavax.swing.JTextField;
public class PanelCliente {
private JScrollPane scroll;
/** Area para mostrar la conversación */
private JTextArea textArea;
/** Para pedir el texto al usuario */
private JTextField textField;
/** Boton para enviar el texto */
private JButton boton;
/**
* Crea el panel con todos sus componentes. Un Area de texto para ver la
*conversacion, un textField para escribir el texto que queremos enviar y
* un boton de enviar.
*
* @param contenedor
* Contenedor en el que añadir todos los componentes
*/
public PanelCliente(Container contenedor)
{
contenedor.setLayout(new BorderLayout());
textArea = new JTextArea();
scroll = new JScrollPane(textArea);JPanel panel = new JPanel(new FlowLayout());
textField = new JTextField(50);
boton = new JButton("Enviarrrrr");
panel.add(textField);
panel.add(boton);
contenedor.add(scroll, BorderLayout.CENTER);
contenedor.add(panel, BorderLayout.SOUTH);
}
/** Añade el actionListener que se le pasa tanto a pulsar <intro> enel
* textField como al boton.
* @param accion ActionListener a añadir.
*/
public void addActionListener(ActionListener accion)
{
textField.addActionListener(accion);
boton.addActionListener(accion);
}
/**
* Añade el texto que se le pasa al textArea.
* @param texto Texto a añadir
*/
public void addTexto(Stringtexto)
{
textArea.append(texto);
}
/**
* Devuelve el texto que hay en el textfield y lo borra.
* @return El texto del textfield.
*/
public String getTexto()
{
String texto = ("Director>>"+textField.getText());
textField.setText("");
return texto;
}
}
Cliente Chat
import java.net.Socket;
importjavax.swing.JFrame;
import javax.swing.WindowConstants;
public class ClienteChat {
/** Socket con el servidor del chat */
private Socket socket;
/** Panel con la ventana del cliente */
private PanelCliente panel;
/** Creates a new instance of ClienteChat */
public ClienteChat() {
try
{
creaYVisualizaVentana();socket = new Socket("192.168.1.10", 6011);
ControlCliente control = new ControlCliente(socket, panel);
} catch (Exception e)
{
e.printStackTrace();
}
}
private void creaYVisualizaVentana(){
JFrame v = new JFrame();
panel = new PanelCliente(v.getContentPane());
v.pack();
v.setVisible(true);...
Regístrate para leer el documento completo.