Este documento presenta 6 programas en Java que muestran el uso de sockets y comunicación a través de red para realizar tareas como obtener la dirección IP local, leer archivos a través de Internet, obtener la dirección IP a partir de un nombre de dominio, leer archivos de texto e imágenes, enviar correo electrónico y obtener la URL de la página HTML de un applet. Los programas ilustran el uso de clases como InetAddress, URL, Socket y cómo esto permite la programación concurrente en red.
2. LEZAMA SANCHEZ ANA LAURA
VALENCIA TOXQUI HUMBERTO
1. OBJETIVO DEL PROGRAMA
Comunicarse con direcciones de Internet y con ellas obtener el ip del servidor. El otro programa
obtiene el ip de nuestra computadora. Lee un archivo a traves de internet. Como leer un archivo
de texto y uno de imagen(GIF)
2.- ¿QUE CLASES UTILIZA DEL PAQUETE NET DE JAVA?
InetAddress
URL
Socket
3.- ¿CUÁL ES LA RELACIÓN CON LOS PROCESOS CONCURRENTES?
Esto hace que se pueda conseguir comunicar computadoras dentro de una red, incluso en
Internet permitiendo asi realizar programas concurrentes en red.
PROGRAMAS
PROGRAMA 1
/*Como obtener la direccion IP local*/
import java.net.*;
public class pruebaGetLocalHost
{
public static void main(String args[])
{
InetAddress miDireccionIP = null;
Try
{
miDireccionIP = InetAddress.getLocalHost();
}
catch(UnknownHostException e){}
3. System.out.println(miDireccionIP);
}
}
PROGRAMA 2
/*Como leer un archivo a traves d Internet*/
import java.net.*;
import java.io.*;
public class pruebaLeerURL
{
public static void main(String args[])
{
Try
{
URL javasoft = null;
DataInputStream dis = null;
javasoft = new URL("http://www.javasoft.com");
dis = new DataInputStream(javasoft.openStream());
String line = dis.readLine();
while (line != null)
{
System.out.println(line);
line = dis.readLine();
}
}
catch (IOException e)
{
System.out.println("Error" + e.getMessage());
}
}
}
4. PROGRAMA 3
/*Como obtener la direccion IP de un nombre de dominio*/
import java.net.*;
public class obtenerIPdeDNS
{
public static void main(String args[])
{
InetAddress javasoft = null;
try
{
javasoft = InetAddress.getByName("www.javasoft.com");
}
catch (UnknownHostException e)
{
System.out.println(javasoft);
}
System.out.println(javasoft);
}
}
PROGRAMA 4
5. /*Como leer un archivo de texto y uno de imagen(GIF)*/
import java.applet.*;
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.image.*;
public class pruebaGetContent extends Applet
{
String cadena;
Image imagen;
public void init()
{
try{ //leer un archivo de texto
URL arch_texto = new URL(getDocumentBase(),"simple.texto");
cadena = (String) arch_texto.getContent();
//caargar un archivo grafico
URL u = new URL(getDocumentBase(), "simple.gif");
imagen = this.createImage((ImageProducer)
u.getContent());
}
catch (MalformedURLException e)
{
System.out.println("Error:" + e.getMessage());
}
catch (IOException e)
{
System.out.println("Error:" + e.getMessage());
}
repaint();
}
public void paint(Graphics g)
{
g.drawImage(imagen, 0, 0, this);
g.drawString(cadena, 75,75);
}
}
6. PROGRAMA 5
/*Como enviar correo electronico desde una aplicacion en java*/
import java.io.*;
import java.net.*;
public class pruebaCorreoJava
{
static PrintStream ps = null; //envio de mensajes
static DataInputStream dis = null; //recepción de mensajes
public static void enviar(String str) throws IOException
{
ps.println(str); //enviar un texto SMTP
ps.flush(); //descarga el texto
System.out.println("Java envió" + str);
}
public static void recibir() throws IOException
{
String readstr = dis.readLine(); //obtener la respuesta SMTP
System.out.println("respuesta SMTP:" + readstr);
}
public static void main(String args[])
{
String HELO = "HELO";
String MAIL_FROM = "MAIL_FROM:remitente@correo.com.mx";
String RCTP_TO = "RCTP_TO: receptor@correo.com.mx";
String DATA = "DATA"; //inicio del mensaje
String ASUNTO = "Subject: Java es excelente!n";
//Nota: "rn.rn" indica el final del mensaje
String MENSAJE = "Java envió esto!rn.rn";
Socket smtp = null; //Socket de SMTP
try
{ //Nota: 25 es el número de puerto SMTP predeterminado
smtp = new Socket("smtp.servidor.com.mx",25);
OutputStream os = smtp.getOutputStream();
ps = new PrintStream(os);
InputStream is = smtp.getInputStream();
dis = new DataInputStream(is);
}
catch (IOException e)
{
System.out.println("Error al conectar:" + e);
}
7. try
{ //enviar el HELO
String loc = InetAddress.getLocalHost().getHostName();
enviar(HELO + loc);
recibir(); //obtener la respuesta SMTP
enviar(MAIL_FROM); //enviar el remitente
recibir(); //obtener la respuesta SMTP
enviar(RCTP_TO); //enviar el receptor
recibir(); //obtener la respuesta SMTP
enviar(DATA); //enviar el inicio de mensaje
recibir(); //obtener la respuesta SMTP
enviar(ASUNTO); //enviar el asunto
recibir(); //obtener la respuesta SMTP
enviar(MENSAJE); //enviar el contenido del mensaje
recibir(); //obtener la respuesta SMTP
smtp.close(); //cerrar la conexión
}
catch (IOException e)
{
System.out.println("Error al enviar: " + e);
}
System.out.println("Correo enviado!");
}
}
PROGRAMA 6
/*Como obtener el URL de la pagina de HTML de un applet*/
import java.applet.*;
import java.net.*;
import java.awt.*;
public class pruebaGetDocumentBase extends Applet
{
8. public void init()
{
URL html = getDocumentBase();
System.out.println(html);;
}
}