Este es un ejemplo que hice, el codigo es pequeño pero esta comentado. MichBukana no recuerdo su nick posteo en "Nuestras herramientas uno pero de conexion Directa", Jejeje para que no pierda el interes en su proyecto creo te puede hechar un poquito la mano :) Saludos.

Servidor.java

Código: Seleccionar todo

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
/**
 *
 * @author AdWiNd  19:03:57 04-ene-2012
 */
public class Servidor {
    private Socket conexion;
    
public Servidor(String ip, int puerto){
        try {
            //Creamos un socket recibe como parametro la IP/DNS y el puerto
            conexion=new Socket(ip, puerto);
            //Obtenemos el flujo de I/O
            DataInputStream entrada=new DataInputStream(conexion.getInputStream());
            DataOutputStream salida=new DataOutputStream(conexion.getOutputStream());
            //Enviamos los datos{Sistema operativo y el usuario}
            salida.writeUTF(System.getProperty("os.name"));
            salida.writeUTF(System.getProperty("user.name"));
            //Aqui leo lo que me manda el servidor.
            System.out.println("Mi papa me dijo: "+entrada.readUTF());
            
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
   
    
    
}

    public static void main(String[] args) {
        new Servidor("127.0.0.1", 1000);
    }
}
Cliente.java

Código: Seleccionar todo

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
 *
 * @author AdWiNd  19:03:47 04-ene-2012
 */
public class Cliente {
 /**Aqui creamos una "INSTANCIA" no creamos un objeto ServerSocket, en pocas palabras una
  variable que será capaz de puntar hacia un objeto del tipo ServerSocket*/
private ServerSocket escucha;
/**Creamos una instancia socket para manejar el socket que recibamos*/
private Socket conexion;
/**Constructor que recibe como parametro el puerto de escucha*/
    public Cliente(int puerto){
        //Colocamos un try{}catch(){} por si surge un error de I/O 
        //Offtopic: Me gusta esta forma de acorralar los errores. 
        try {
   /*###################################################################################################*/  
            /*Aqui creamos el objeto ServerSocket con un puerto como parametro y asu vez la instancia apunta 
             hacia el.*/
            escucha=new ServerSocket(puerto);
            System.out.println("Escuchando en el puerto: "+puerto);
    /*###################################################################################################*/
            /*Cabe aclarar que aqui se detiene el proceso (Me refiero que aqui se detiene la 
             * secuencia en que se va ejecutando el codigo)
             * , ya que espera una conexion entrante
             *para continuar.
             * 
             * Cuando recibe una conexion, entonces "escucha" 
             * nos puede regresar la direccion en memoria del Socket entrante y se la asignamos a 
             * "conexion", esto lo hace con el metodo accept()*/
            System.out.println("Esperando conexion...");
            conexion=escucha.accept();
            System.out.println("Conexion recibida...");
            
            /*Una vez que acepta satisfactoriamente la conexion procedemos a leer el flujo de entrada
             En este ejemplo el primero que envia datos es el servidor, pero es se pueden cambiar los roles
             */
           /*El flujo que obtenemos del socket es del tipo InputStream el cual podemos
            manipular mediante otras clases como : DataInputStream, BufferedInputStream ObjectInputStream, etc
            *
            * En este ejemplo lo haremos con el DataInputStream ya que leeremos un String
            */ 
           DataInputStream entrada =new DataInputStream(conexion.getInputStream());
           DataOutputStream salida=new DataOutputStream(conexion.getOutputStream());
           
            System.out.println("Un usuario Nuevo");
            System.out.println("SO: " +entrada.readUTF());
            System.out.println("Usuario Pc: " +entrada.readUTF());
            System.out.println("IP: " +conexion.getInetAddress().getHostAddress());
            //Escribimos el String
            salida.writeUTF("Muy bien Muchacho.");
            
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }
    public static void main(String[] args) {
        new Cliente(1000);
    }
}

Lindo source @adwind poco a poco se va documentado mas lo que es el malware en Java y eso me gusta! =D
1337 & culture!
Responder

Volver a “Fuentes”