domingo, 5 de abril de 2026

Protocolos comunes (UDP, TCP) y el famoso Three-Way Handshake

 Los protocolos TCP (Transmission Control Protocol) y UDP (User Datagram Protocol) son dos de los protocolos de red más comunes utilizados en la transferencia de datos a través de redes de ordenadores.


El protocolo TCP, es un protocolo orientado a la conexión que proporciona una entrega de datos confiable, mientras que el protocolo UDP, es un protocolo no orientado a conexión el cual no garantiza la entrega de datos.


Una parte crucial del protocolo TCP es el Three-Way Handshake, un procedimiento utilizado para establecer una conexión entre dos dispositivos. Este procedimiento consta de tres pasos: SYN, SYN-ACK y ACK, en los que se sincronizan los números de secuencia y de reconocimiento de los paquetes entre los dispositivos. El Three-Way Handshake es fundamental para establecer una conexión confiable y segura a través de TCP.


Puertos TCP comunes:


21: FTP (File Transfer Protocol) - permite la transferencia de archivos entre sistemas.

22: SSH (Secure Shell) - un protocolo de red seguro que permite a los usuarios conectarse y administrar sistemas de forma remota.

23: Telnet - un protocolo utilizado para la conexión remota a dispositivos de red.

80: HTTP (Hypertext Transfer Protocol) - el protocolo que se utiliza para la transferencia de datos en la World Wide Web.

443: HTTPS (Hypertext Transfer Protocol Secure) - la versión segura de HTTP, que utiliza encriptación SSL/TLS para proteger las comunicaciones web.

Puertos UDP comunes:


53: DNS (Domain Name System) - un sistema que traduce nombres de dominio en direcciones IP.

67/68: DHCP (Dynamic Host Configuration Protocol) - un protocolo utilizado para asignar direcciones IP y otros parámetros de configuración a los dispositivos en una red.

69: TFTP (Trivial File Transfer Protocol) - un protocolo simple utilizado para transferir archivos entre dispositivos en una red.

123: NTP (Network Time Protocol) - un protocolo utilizado para sincronizar los relojes de los dispositivos en una red.

161: SNMP (Simple Network Management Protocol) - un protocolo utilizado para administrar y supervisar dispositivos en una red.

Cabe destacar que estos son solo algunos de los más comunes. Existen muchos más puertos los cuales operan tanto por TCP como por UDP.



lunes, 9 de febrero de 2026

Configurar GIT en Windows



 En sistemas Windows, Git busca el archivo .gitconfig en el directorio $HOME (para mucha gente será (C:\Users\$USER). También busca el archivo /etc/gitconfig, aunque esta ruta es relativa a la raíz MSys, que es donde decidiste instalar Git en tu sistema Windows cuando ejecutaste el instalador.

Tu Identidad

Lo primero que deberás hacer cuando instales Git es establecer tu nombre de usuario y dirección de correo electrónico. Esto es importante porque los "commits" de Git usan esta información, y es introducida de manera inmutable en los commits que envías:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

De nuevo, sólo necesitas hacer esto una vez si especificas la opción --global, ya que Git siempre usará esta información para todo lo que hagas en ese sistema. Si quieres sobrescribir esta información con otro nombre o dirección de correo para proyectos específicos, puedes ejecutar el comando sin la opción --global cuando estés en ese proyecto.

Muchas de las herramientas de interfaz gráfica te ayudarán a hacer esto la primera vez que las uses.

miércoles, 4 de febrero de 2026

Clases y Objetos en JAVA

 Java está pensado para modelar el mundo real con código.

No trabajas con números sueltos o funciones aisladas: trabajas con cosas.

Esas “cosas” se definen con clases y existen como objetos.


🏗️ ¿Qué es una clase en Java?

Una clase es un molde, plantilla o plano.

Define:

  • Qué datos tiene algo → atributos

  • Qué puede hacer → métodos

👉 La clase NO es algo real, es solo la descripción.

Analogía potente

Piensa en un plano de una casa:

  • Dice cuántas habitaciones hay

  • Dónde están las puertas

  • Cómo se usa el baño

Pero no puedes vivir en un plano.

public class Classes {

public static void main(String[] args) {

var person = new Person("Brais", -38, "123456789A");

// person.name = "Brais";
// person.age = 38;

person.sayHello();

person.name = "Brais Moure";
System.out.println(person.name);

// person.id = "123456789A";

System.out.println(person.getId());

person.setAge(38);
System.out.println(person.getAge());

var person2 = new Person("MoureDev", 18, "123456789B");
person2.sayHello();
}
}

🚗 ¿Qué es un objeto en Java?

Un objeto es una instancia real de una clase.

Es:

  • Algo que existe en memoria

  • Tiene valores concretos

  • Puede ejecutar métodos

Siguiendo la analogía

El objeto es la casa ya construida, con gente viviendo dentro.


public class Person {

// Atributos
protected String name;
private int age;
final private String id;

// Constructor
public Person(String name, int age, String id) {
this.name = name;
this.setAge(age);
this.id = id;
}

// Métodos
public void sayHello() {
System.out.println("Hola, soy " + name + ", tengo " + age + " años, y mi id es " + id + ".");
}

// Getter
public int getAge() {
return age;
}

public String getId() {
return id;
}

// Setter
public void setAge(int age) {
if (age > 0) {
this.age = age;
} else {
System.out.println("Edad no válida");
}
}
}


sábado, 31 de enero de 2026

Numero par o impar en Java

public class ParOImpar {
public static void main(String[] args) {
int numero = 7;

if (numero % 2 == 0) {
System.out.println("El número es par");
} else {
System.out.println("El número es impar");
}
}
}

jueves, 29 de enero de 2026

Tipos de datos primitivos

 


Los tipos de datos primitivos son los más básicos que existen en un lenguaje de programación. Representan valores simples y no se componen de otros datos.

Aunque varían un poco según el lenguaje, los más comunes son:

🧮 Numéricos

  • int / integer → números enteros
    Ej: 5, -12, 0

  • float / double → números decimales
    Ej: 3.14, -0.5

🔤 Caracteres y texto

  • char → un solo carácter
    Ej: 'a', '7'

  • string (en algunos lenguajes no es primitivo) → texto
    Ej: "Hola mundo"

✔️ Lógico

  • boolean / bool → verdadero o falso
    Ej: true, false

⚪ Vacío o nulo

  • null → ausencia de valor

  • void → indica que no se devuelve ningún valor (en funciones)



public class DataTypes {

public static void main(String[] args) {

// Tipos de datos primitivos

int myInt = 37;
System.out.println(myInt);

double myDouble = 1.77;
System.out.println(myDouble);

// float, long, byte

char myChar = 'a';
System.out.println(myChar);

boolean myBoolean = true;
myBoolean = false;
System.out.println(myBoolean);

String myString = "Hola, Java";
System.out.println(myString);

// Tipo de dato en tiempo de compilación

System.out.println(myString.getClass().getSimpleName());
}
}

Hola Mundo en JAVA

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hola Mundo");
}
}