Necesito ayuda urgente!!!!
Hola a todos necesito saber como se hace un programa cliente/Servidor en Java, donde el cliente abra un fichero y lea una linea del fichero y se la envia al servidor, el servidor lee la linea del fichero y la pasa a mayusculas(creo que hay una funcion que hace eso, y es facil), y una vez pasada esta se la envia al cliente y esta sera la salida del cliente. O sea, la salida del servidor sera la linea que le envia el cliente y la salida del cliente sera esa linea pero en mayusculas que le envia el servidor.
Por favor si alguien me puede ayudar es para clases y tengo mas o menos algo echo aqui se los paso y me lo miran por favor. Es urgenteeeee...!!!
Aqui va el codigo que tengo echo:
CLIENTE:
import java.net.*;
import java.io.*;
public class TCPClient
{
public static void main (String [] args)
{
new TCPClient();
}
public TCPClient()
{
try
{
Socket socket = new Socket ("localhost", 35559);
System.out.println ("connect");
// The name of the input file
String fileName = "line-input.txt";
// Create a file reader using the file name
FileReader reader = new FileReader (fileName);
// Create a buffered reader using a file reader
BufferedReader bf = new BufferedReader(reader);
// Read a line from the buffered reader
String strIn = bf.readLine();
/* Se obtiene un stream de lectura para leer objetos */
ObjectInputStream bufferObjetos =
new ObjectInputStream (socket.getInputStream());
/* Se lee un Datosocket que nos env� el servidor y se muestra
* en pantalla */
DataSocket dato = (DataSocket)bufferObjetos.readObject();
System.out.println ("FROM SERVER: " + dato.toString());
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
SERVIDOR:
import java.net.*;
import java.io.*;
/**
* Clase principal que instancia un socket servidor, acepta una conexi�
* de un cliente y le env� un entero y una cadena de caracteres.
*/
public class TCPServer
{
public static void main (String [] args)
{
new TCPServer();
}
/**
* Constructor por defecto. Hace todo lo que hace el ejemplo.
*/
public TCPServer()
{
try
{
ServerSocket socket = new ServerSocket (35559);
System.out.println ("Waiting Client...");
Socket cliente = socket.accept();
System.out.println ("Connect with client from " + cliente.getInetAddress());
// Print on console what it has been read
System.out.println(strIn);
// Change the line to upper case
String upperCaseString = strIn.toUpperCase();
// Create a file writer with the name “line-output.txt”
FileWriter writer = new FileWriter ("line-output.txt");
// Create a buffered file writer using a file writer
BufferedWriter br = new BufferedWriter (writer);
// Write in the buffered writer
br.write(upperCaseString);
// Make sure that the buffered output is written out
br.flush();
cliente.setSoLinger (true, 10);
// Se prepara un flujo de salida para objetos y un objeto para enviar*/
DataSocket dato = new DataSocket();
ObjectOutputStream bufferObjetos =
new ObjectOutputStream (cliente.getOutputStream());
// Se env� el objeto
bufferObjetos.writeObject(dato);
System.out.println ("Hi There");
cliente.close();
socket.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Esto es lo que he podido recopilar por ahi pero no tira bien espero que alguien me ayude, es que de java no tengo ni idea.
Por favor si alguien me puede ayudar es para clases y tengo mas o menos algo echo aqui se los paso y me lo miran por favor. Es urgenteeeee...!!!
Aqui va el codigo que tengo echo:
CLIENTE:
import java.net.*;
import java.io.*;
public class TCPClient
{
public static void main (String [] args)
{
new TCPClient();
}
public TCPClient()
{
try
{
Socket socket = new Socket ("localhost", 35559);
System.out.println ("connect");
// The name of the input file
String fileName = "line-input.txt";
// Create a file reader using the file name
FileReader reader = new FileReader (fileName);
// Create a buffered reader using a file reader
BufferedReader bf = new BufferedReader(reader);
// Read a line from the buffered reader
String strIn = bf.readLine();
/* Se obtiene un stream de lectura para leer objetos */
ObjectInputStream bufferObjetos =
new ObjectInputStream (socket.getInputStream());
/* Se lee un Datosocket que nos env� el servidor y se muestra
* en pantalla */
DataSocket dato = (DataSocket)bufferObjetos.readObject();
System.out.println ("FROM SERVER: " + dato.toString());
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
SERVIDOR:
import java.net.*;
import java.io.*;
/**
* Clase principal que instancia un socket servidor, acepta una conexi�
* de un cliente y le env� un entero y una cadena de caracteres.
*/
public class TCPServer
{
public static void main (String [] args)
{
new TCPServer();
}
/**
* Constructor por defecto. Hace todo lo que hace el ejemplo.
*/
public TCPServer()
{
try
{
ServerSocket socket = new ServerSocket (35559);
System.out.println ("Waiting Client...");
Socket cliente = socket.accept();
System.out.println ("Connect with client from " + cliente.getInetAddress());
// Print on console what it has been read
System.out.println(strIn);
// Change the line to upper case
String upperCaseString = strIn.toUpperCase();
// Create a file writer with the name “line-output.txt”
FileWriter writer = new FileWriter ("line-output.txt");
// Create a buffered file writer using a file writer
BufferedWriter br = new BufferedWriter (writer);
// Write in the buffered writer
br.write(upperCaseString);
// Make sure that the buffered output is written out
br.flush();
cliente.setSoLinger (true, 10);
// Se prepara un flujo de salida para objetos y un objeto para enviar*/
DataSocket dato = new DataSocket();
ObjectOutputStream bufferObjetos =
new ObjectOutputStream (cliente.getOutputStream());
// Se env� el objeto
bufferObjetos.writeObject(dato);
System.out.println ("Hi There");
cliente.close();
socket.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Esto es lo que he podido recopilar por ahi pero no tira bien espero que alguien me ayude, es que de java no tengo ni idea.
