Java - java socket

 
Vista:

java socket

Publicado por iker (1 intervención) el 01/04/2009 11:46:14
aupa! somos dos alumnos de programacion de universidad y tenemos que hacer un proyecto en el que con sockets de java hacer un chat, sin interfaz grafica, tenemos lo minimo para establecer la conexion y enviar un solo mensaje, este es el codigo que tenemos:

(para ver ip)

import java.io.PrintStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Scanner;

public class VerIP
{

public VerIP()
{
}

public static void main(String args[])
{
Scanner scanner = new Scanner(System.in);
try
{
System.out.println("Nombre del ordenador");
String s = scanner.nextLine();
InetAddress inetaddress = InetAddress.getByName(s);
System.out.print("Direccion IP: ");
System.out.println(inetaddress.getHostAddress());
}
catch(UnknownHostException unknownhostexception)
{
System.out.println("Ordenador desconocido");
}
catch(Exception exception)
{
System.out.println("Error en la lectura");
}
}

(cliente)

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class Cliente
{

public Cliente()
{
}

public static void main(String args[])
{
Socket socket = null;
int i = 0;
Scanner scanner = new Scanner(System.in);
DataOutputStream dataoutputstream = null;
BufferedReader bufferedreader = null;
if(args.length != 2)
{
System.out.println("Usar: java SegundoSocket <nombreOrdenador> <puerto>");
} else
{
try
{
i = Integer.parseInt(args[1]);
}
catch(NumberFormatException numberformatexception)
{
System.out.println("Numero de puerto erroneo");
}
try
{
socket = new Socket(args[0], i);
}
catch(UnknownHostException unknownhostexception)
{
System.out.println("Ordenador desconocido");
}
catch(IOException ioexception)
{
System.out.println("Error al crear el socket");
return;
}
System.out.println("Conexion realizada");
try
{
bufferedreader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
dataoutputstream = new DataOutputStream(socket.getOutputStream());
}
catch(IOException ioexception1)
{
System.out.println("Error en la entrada");
}
String s;
try
{
do
{
System.out.println("Escribe una cadena para enviar al destino ");
s = scanner.nextLine();
if(s.length() != 0)
{
dataoutputstream.writeBytes(s);
dataoutputstream.write(13);
dataoutputstream.write(10);
dataoutputstream.flush();
System.out.println("Respuesta: ");
int j;
while((j = bufferedreader.read()) != 10)
System.out.write(j);
System.out.println();
System.out.println("Fin de respuesta:");
}
} while(s.length() != 0);
}
catch(IOException ioexception2)
{
System.out.println("Error de entrada");
}
try
{
socket.close();
}
catch(IOException ioexception3)
{
System.out.println("Error al cerrar el socket");
}
}
}

(escuchador)

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

public class Escuchador
{

public Escuchador()
{
}

public static void main(String args[])
{
try
{
ServerSocket serversocket = new ServerSocket(5002);
int i = serversocket.getLocalPort();
System.out.println((new StringBuilder()).append("Escuchador en el puerto: ").append(i).toString());
Socket socket = serversocket.accept();
String s = socket.getInetAddress().getHostName();
int j = socket.getPort();
System.out.println((new StringBuilder()).append("Aceptada la conexion de: ").append(s).toString());
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
DataOutputStream dataoutputstream = new DataOutputStream(socket.getOutputStream());
boolean flag = false;
do
{
String s1 = bufferedreader.readLine();
System.out.println((new StringBuilder()).append("Texto recibido: ").append(s1).toString());
if(s1.equalsIgnoreCase("fin"))
flag = true;
String s2 = s1.toLowerCase();
for(int k = 0; k < s2.length(); k++)
dataoutputstream.write((byte)s2.charAt(k));

dataoutputstream.write(13);
dataoutputstream.write(10);
dataoutputstream.flush();
System.out.println((new StringBuilder()).append("Texto enviado: ").append(s2).toString());
} while(!flag);
bufferedreader.close();
dataoutputstream.close();
socket.close();
serversocket.close();
}
catch(IOException ioexception)
{
System.out.println(ioexception.getMessage());
}
}

pd: tenemos tambien el primer socket y el segundo.
aver si nos podeis echar una mano ya que nuestro amable profesor por pco nos la echa al cuello.

muchas gracias de antemano!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder