<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://knoppia.net/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://knoppia.net/feed.php">
        <title>Knoppia dad</title>
        <description></description>
        <link>https://knoppia.net/</link>
        <image rdf:resource="https://knoppia.net/lib/exe/fetch.php?media=favicon.ico" />
       <dc:date>2026-04-10T12:01:27+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:cabeceras_email&amp;rev=1700734522&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:chat&amp;rev=1698061129&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:combinaciones_teclado&amp;rev=1700481159&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:computacion_en_la_nube&amp;rev=1702296844&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:comunicacion_entre_procesos&amp;rev=1697454884&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:conectaremail&amp;rev=1700738434&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:ejercicio_protocolos&amp;rev=1700737461&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:ejercicioprotocolos&amp;rev=1700739009&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:imap&amp;rev=1698058607&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:jtable&amp;rev=1695981997&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:mejorascodigo1&amp;rev=1702550962&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:patrones_de_integracion&amp;rev=1702549347&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:practica2&amp;rev=1701691076&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:protocolos_comunicacion&amp;rev=1697711419&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:repasoparcial1&amp;rev=1699528408&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:resumen_parcial1&amp;rev=1700767606&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:rmi&amp;rev=1704573336&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:sistemas_distribuidos&amp;rev=1696247134&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:sockets-2&amp;rev=1700737551&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:sockets-3&amp;rev=1700737511&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:sockets-4&amp;rev=1697455895&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=dad:sockets&amp;rev=1700737617&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://knoppia.net/lib/exe/fetch.php?media=favicon.ico">
        <title>Knoppia</title>
        <link>https://knoppia.net/</link>
        <url>https://knoppia.net/lib/exe/fetch.php?media=favicon.ico</url>
    </image>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:cabeceras_email&amp;rev=1700734522&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:15:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Como Obtener las cabeceras de los correos recibidos</title>
        <link>https://knoppia.net/doku.php?id=dad:cabeceras_email&amp;rev=1700734522&amp;do=diff</link>
        <description>Como Obtener las cabeceras de los correos recibidos

Obtenemos las cabeceras de correo a través de un cliente mediante la utilización de sockets en java



import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;

public class GmailImapExample {

    public static void main(String[] args) {
        final String username = &quot;correo@gmail.com&quot;; // Reemplaza con tu dirección de Gmail
        fi…</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:chat&amp;rev=1698061129&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-23T11:38:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Implementación Chat con Sockets</title>
        <link>https://knoppia.net/doku.php?id=dad:chat&amp;rev=1698061129&amp;do=diff</link>
        <description>Implementación Chat con Sockets


Teoría para hacerlo:
Creamos una clase Hilos que herede de Thread que contenga un socket

Spaguetti Code:


publica class Hilos extends Thread{
 private Socket socket;
 private List&lt;Hilos&gt; allclients;

 public Hilos(Socket socket, List&lt;Hilos&gt; allClients){
  this.socket = socket
  this.allClients = allClients
 }

 public void ejecutarHastaCadenaSalir(){
  try{
   Socket socket = new Socket(&quot;127.0.0.1&quot;, Servidor.PUERTO);
   BufferedRea
  }
 }

}</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:combinaciones_teclado&amp;rev=1700481159&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-20T11:52:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Atajos de Teclado Eclipse</title>
        <link>https://knoppia.net/doku.php?id=dad:combinaciones_teclado&amp;rev=1700481159&amp;do=diff</link>
        <description>Atajos de Teclado Eclipse

	*  Formatear código: Control + Shift + F
	*  Autocompletar/sugerencias: Control + Espacio</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:computacion_en_la_nube&amp;rev=1702296844&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-11T12:14:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Computación en la Nube</title>
        <link>https://knoppia.net/doku.php?id=dad:computacion_en_la_nube&amp;rev=1702296844&amp;do=diff</link>
        <description>Computación en la Nube

	*  Flexibilidad: podemos configurar la arquitectura en base a nuestras necesidades
	*  Escalabilidad. podemos aumentar los recursos fácilmente
	*  Disponibilidad: los proveedores suelen ofrecer sistemas 24/7

Lo malo es que los costes pueden llegar a ser muy elevados para sistemas muy grandes.
Otra opción es el modelo híbrido, tener parte en la nube y parte local, para cosas muy simples se utiliza el hardware disponible.</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:comunicacion_entre_procesos&amp;rev=1697454884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-16T11:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Comunicación Entre Procesos</title>
        <link>https://knoppia.net/doku.php?id=dad:comunicacion_entre_procesos&amp;rev=1697454884&amp;do=diff</link>
        <description>Comunicación Entre Procesos

Conceptos básicos

Es necesario un protocolo que establecerá quien es el emisor y quien el receptor
Tipos de comunicación:

	*  Unicast: De un proceso a otro, una sola comunicación
	*  Multicast: desde un proceso a varios</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:conectaremail&amp;rev=1700738434&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T11:20:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Conectar GMAIL desde nuestro programa</title>
        <link>https://knoppia.net/doku.php?id=dad:conectaremail&amp;rev=1700738434&amp;do=diff</link>
        <description>Conectar GMAIL desde nuestro programa

Tenemos que utilizar un Socket SSL, llamado SSLSocketFactory.

Para podernos conectar a Gmail, en opciones de seguridad de la cuenta google, teniendo la autenticación en 2 pasos activada, abajo de todo tenemos una sección llamada contraseñas de aplicaciones, aquí se crean contraseñas específicamente para aplicaciones, utilizaremos la contraseña que se genere ahí para loguear desde nuestro cliente.</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:ejercicio_protocolos&amp;rev=1700737461&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T11:04:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ejercicio Protocolos de Comunicación</title>
        <link>https://knoppia.net/doku.php?id=dad:ejercicio_protocolos&amp;rev=1700737461&amp;do=diff</link>
        <description>Ejercicio Protocolos de Comunicación

Estructura:

	*  Clase Main
		*  Socket a la Web de la Universidad
			*  Seguir protocolo para obtener el index de la web
			*  Mandamos mensaje de petición a la web de la universidad:
				*  Primera línea:
				*</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:ejercicioprotocolos&amp;rev=1700739009&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T11:30:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ejemplo de como podría ser el examen de Dad</title>
        <link>https://knoppia.net/doku.php?id=dad:ejercicioprotocolos&amp;rev=1700739009&amp;do=diff</link>
        <description>Ejemplo de como podría ser el examen de Dad

Probablemente se nos pida algo del estilo a la implementación de un protocolo, en el que un servidor deberá recibir comandos de un cliente y responder en función a estos.

Elemento

Este será la clase con el que trabajaremos:</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:imap&amp;rev=1698058607&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-23T10:56:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Práctica de DAD: Creación de un cliente de Correo IMAP</title>
        <link>https://knoppia.net/doku.php?id=dad:imap&amp;rev=1698058607&amp;do=diff</link>
        <description>Práctica de DAD: Creación de un cliente de Correo IMAP

	*  Utilizamos un Socket para tirar una conexión con un servidor de IMAP utilizando BufferReader y PrintWriter.
	*  Para usar la APP se debe acceder con un USER y PASSWORD
	*  Debe haber un usuario ADMIN para dar de alta más usuarios.</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:jtable&amp;rev=1695981997&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-29T10:06:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JTable</title>
        <link>https://knoppia.net/doku.php?id=dad:jtable&amp;rev=1695981997&amp;do=diff</link>
        <description>JTable

Vamos a implementar una JTable que muestre los hilos lanzados con un contador de iteraciones por Hilo y otro contador de iteraciones totales:


Implementación de la GUI

Primero creamos una nueva ventana desde el Window Builder:

A continuación insertamos la JTable en la ventana y en propiedades de esta vamos a model:</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:mejorascodigo1&amp;rev=1702550962&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-14T10:49:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Mejoras a realizar</title>
        <link>https://knoppia.net/doku.php?id=dad:mejorascodigo1&amp;rev=1702550962&amp;do=diff</link>
        <description>Mejoras a realizar

	*  Al correo añadir como atributos puerto y servidor
	*  Cambiar el sistema de carga del CSV con otra forma más fácil.</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:patrones_de_integracion&amp;rev=1702549347&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-14T10:22:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Patrones de Integración</title>
        <link>https://knoppia.net/doku.php?id=dad:patrones_de_integracion&amp;rev=1702549347&amp;do=diff</link>
        <description>Patrones de Integración

Las aplicaciones actuales interaccionan unas con otras y le hacen frente a los siguientes problemas:

	*  Las redes son lentas y no fiables
	*  Las aplicaciones son diferentes: Framework, sistema, codificación y codificación de los datos.</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:practica2&amp;rev=1701691076&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-04T11:57:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Concepto Funcional de la Práctica 2</title>
        <link>https://knoppia.net/doku.php?id=dad:practica2&amp;rev=1701691076&amp;do=diff</link>
        <description>Concepto Funcional de la Práctica 2



Tenemos 3 elementos principales:

	*  Cliente: Utiliza RMI para interactuar con el servidor
	*  Servidor: Recibe las peticiones del ciente y contacta con la bandeja de eMail a través de un Socket mediante el protocolo IMAP</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:protocolos_comunicacion&amp;rev=1697711419&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-19T10:30:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Protocolos de Comunicación</title>
        <link>https://knoppia.net/doku.php?id=dad:protocolos_comunicacion&amp;rev=1697711419&amp;do=diff</link>
        <description>Protocolos de Comunicación

Cuando hay una comunicación entre 2 procesos a través de internet aparecen los protocolos para indicar como se realizan estas comunicaciones.
Hay 2 principales tipos:

	*  basados en texto: se envían cadenas de caracteres en una representación</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:repasoparcial1&amp;rev=1699528408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-09T11:13:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Repaso DAD 1</title>
        <link>https://knoppia.net/doku.php?id=dad:repasoparcial1&amp;rev=1699528408&amp;do=diff</link>
        <description>Repaso DAD 1

Syncronize se utiliza cuando tenemos hilos que comparten objetos para evitar la concurrencia
Sockets: canales de comunicación entre 2 o más procesos

	*  Se usa un objeto de la clase socket en cada uno de los procesos que se están comunicando (Uno distinto por programa)</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:resumen_parcial1&amp;rev=1700767606&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T19:26:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Resumen parcial 1 DAD</title>
        <link>https://knoppia.net/doku.php?id=dad:resumen_parcial1&amp;rev=1700767606&amp;do=diff</link>
        <description>Resumen parcial 1 DAD

Hilos

Un hilo es una secuencia única de control de flujo dentro de un programa

	*  Es la unidad de código más pequeña que se puede ejecutar
	*  Pensado para realizar tareas lentas.

Cuando se implementa un hilo primero debe heredar la clase Thread y luego dentro implementar el run(), que es donde irá la funcionalidad de este. Para ejecutar un hilo se debe poner el nombre del objeto de la clase hilo seguido por .start()</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:rmi&amp;rev=1704573336&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-06T20:35:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RMI: Remote Method Invocation</title>
        <link>https://knoppia.net/doku.php?id=dad:rmi&amp;rev=1704573336&amp;do=diff</link>
        <description>RMI: Remote Method Invocation

	*  Implementación de java del Remote Procedure Call
	*  Invocación aun método que puede estar en otra máquina
	*  Los datos se pasan como argumentos del método.7

Diferencias con la programación local

	*  Definicion de objetos</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:sistemas_distribuidos&amp;rev=1696247134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-02T11:45:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sistemas Distribuidos</title>
        <link>https://knoppia.net/doku.php?id=dad:sistemas_distribuidos&amp;rev=1696247134&amp;do=diff</link>
        <description>Sistemas Distribuidos

Un sistema distribuido es un conjunto de computadores independientes interconectados a través de una red y que son capaces de colaborar con el fin de realizar una tarea.
Ahora pasaremos del modelo Monoprocesador a Sistema distribuido. OJO, esto no es programación paralela.</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:sockets-2&amp;rev=1700737551&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T11:05:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sockets en Java II</title>
        <link>https://knoppia.net/doku.php?id=dad:sockets-2&amp;rev=1700737551&amp;do=diff</link>
        <description>Sockets en Java II

Socket que no para hasta que se recibe cadena salir

Servidor


package sockets2LaPelicula;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

import sockets2LaPelicula.Cliente2;

public void ejecutarHastaCadenaSalir() {//Se ejecuta hasta recibir cadena salir
		try {
			
		
		System.out.println(&quot;Lanzando Servidor...&quot;)…</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:sockets-3&amp;rev=1700737511&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T11:05:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sockets en java III</title>
        <link>https://knoppia.net/doku.php?id=dad:sockets-3&amp;rev=1700737511&amp;do=diff</link>
        <description>Sockets en java III

Queremos crear un server que cuando reciba conexión de un cliente cree un hilo y lo lance hasta que reciba la cadena salir:

Clase SimpleThread


package sockets2LaPelicula;

public class SimpleThread extends Thread{
	public static final int FOR_EVER = -1;//Constante
	protected long delay;//variable
	protected int times;//Variable
	public SimpleThread (long delay, int times) {
		System.out.println(&quot;Constructor SimpleThread&quot;);
		this.delay = delay;
		this.times = times;
	}
	p…</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:sockets-4&amp;rev=1697455895&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-16T11:31:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sockets en Java IV</title>
        <link>https://knoppia.net/doku.php?id=dad:sockets-4&amp;rev=1697455895&amp;do=diff</link>
        <description>Sockets en Java IV

Queremos crear un chat, el servidor deberá escuchar varios clientes y mandarle los mensajes que escriban cada uno de ellos al resto de clientes</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=dad:sockets&amp;rev=1700737617&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T11:06:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sockets</title>
        <link>https://knoppia.net/doku.php?id=dad:sockets&amp;rev=1700737617&amp;do=diff</link>
        <description>Sockets

Un Socket es un punto de conexión (Una Tubería o un Canal) entre 2 procesos e identificado por una IP y un Puerto.
En este caso serán 2 procesos ejecutándose simultáneamente conectados por un socket.

Un socket funciona de una forma similar a la de los ficheros. Para leer y escribir utilizaremos un Buffer (PrintWritter y BufferedReader)</description>
    </item>
</rdf:RDF>
