Skip to content

Repository files navigation

Trabajo Práctico Integrador - PR - UP
2C - 2024

📝 Table of Contents

ℹ️ Acerca De

  • Repositorio que contiene el trabajo práctico de la materia Programación en Redes de la Universidad de Palermo.

🔨 Aplicaciones Utilizadas

Windows

Recomiendo utilizar chocolatey para instalar estos paquetes:

choco install vscode
choco install googlechrome

macOS

Recomiendo utilizar homebrew para instalar estos paquetes:

brew install --cask visual-studio-code
brew install --cask google-chrome

🔨 Docker

macOS

brew install --cask docker

Windows

¿Cómo usar dockerfile?

Se provee un docker container con todas las tools necesarias para compilación y debugging de aplicaciónes. Para instalar el entorno ejecutar el docker compose detached en el root del proyecto.

docker compose up --build -d

Una vez finalizado se puede conectarse por TTY al container con el siguiente comando:

docker exec -it ubuntu-redes bash

Salir de docker container:

exit

Start/Stop Docker Container

docker stop ubuntu-redes
docker start -i ubuntu-redes

Portainer

username: admin
password: Password1234

🔨 Visual Studio Code

Visual Studio Code Extensions

Utilizar Visual Studio Code para C con Docker

  1. Levantar el container que vamos a utilizar haciendo el mapeo de carpeta local a carpeta dentro de la /home del container.
  2. En Visual Studio abrir Remote Window y seleccionar "Attach to Running Container". Indicar el que levantamos en el paso anterior. 2.1. Ir en esta ventana a la parte de extensiones del Visual Studio y asegurarse de que estén todas habilitadas.
  3. Configurar la configuration de debugging del launch.json para que en el program vaya a la ruta del archivo. 3.1. Asegurarse de configurar el "preLaunchTask" para que levante la task de build primero.
  4. Ir al archivo que queremos hacer debug, ir a la sección run and debug del vscode y seleccionar la configuration.

Recomiendo:

  • Cargar los ejemplos o proyectos de código de a uno dentro del container.
  • Que cada carpeta con un proyecto tenga su propio .vscode con su launch.json y su tasks.json.
  • Que cada proyecto tenga su propio Makefile.

Recursos

🔨 Levantar el proyecto

¿Cómo levantar el proyecto?

  1. Levantamos en vscode el proyecto.
  2. Levantamos una terminal que corran nuestra docker image en un docker container.
  3. Dentro del docker container compilamos (make build) y corremos nuestra aplicación (./dist/).

¿Cómo exponer un puerto de docker al host?

  1. Abrir a compose.yml.
  2. Ir a ports.
  3. Configurar HOST_PORT:CONTAINER_PORT o "HOST_IP:HOST_PORT:CONTAINER_PORT"
  4. Luego de crear el container, ejecutar docker ps y verificar que se vea el puerto configurado.

Comandos útiles

  • netstat
    netstat -n --inet
    netstat -l -n --inet
    netstat -l -n --inet -p
    netstat -tcp
    
  • ps
    ps -fea
    ps -fea | grep netcat
    
  • nc/netcat
    • Server (listen)
    netcat -l localhost 8001 [port]
    nc -l localhost 80
    
    • Client (Connect)
    netcat localhost 8001 [port]
    nc localhost 80
    
  • strace
    strace -p 14442 [process_id obtenido con ps -fea]
    
  • ifconfig
    ifconfig
    
  • ss
  • watch
    watch -n0 ss -t4ane
    
  • ls/ll
    ll is an alias of ls -l
    More info:
    https://unix.stackexchange.com/questions/137703/difference-between-ls-l-and-ll
    
  • gcc
    gcc sockets.c -o socket
    ./socket
    
  • make
    • Si el directorio contiene un Makefile
    make
    
  • nslookup
    nslookup yahoo.com
    
  • dig
  • lsof
  • valgrind
    valgrind --leak-check=full --show-leak-kinds=all ./myprog
    

💬 Autor

🎉 Reconocimientos

About

Repositorio que contiene el TP Integrador de la materia Programación en Redes - UP

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages