Repository personale di Simone Mattioli per il corso Programmazione e Sicurezza delle Reti
Università degli Studi di Verona · Docente Davide Quaglia
- Corso di Programmazione e Sicurezza delle Reti
Questo progetto raccoglie codice sorgente, slide, appunti e tracce di rete utilizzati durante il corso, con l’obiettivo di:
- Fornire esempi pratici di programmazione di rete in C, Java, HTML/JS.
- Documentare procedure di laboratorio (Wireshark, MQTT, WebSocket, REST).
- Conservare materiali didattici e appunti personali per il ripasso d’esame.
| Software | Versione minima | Note |
|---|---|---|
| GCC / Clang | 9.0 | Su Windows consigliato Cygwin o WSL |
| Make | – | Alcuni esempi includono Makefile |
| Wireshark | 4.x | Per l’analisi del traffico |
| Mosquitto | 2.x | Solo per l’esercitazione MQTT |
| Python 3 | 3.10 | Script di supporto opzionali |
Consulta
Impostazione-PC-applicazioni-socket.pdfper istruzioni dettagliate su installazione ambiente C su Linux, macOS e Windows.
# Esempio UDP server/client
gcc network.c serverUDP.c -o serverUDP -lpthread
gcc network.c clientUDP.c -o clientUDP -lpthread
# Esempio TCP server/client
gcc network.c serverTCP.c -o serverTCP -lpthread
gcc network.c clientTCP.c -o clientTCP -lpthread| Cartella | Descrizione sintetica |
|---|---|
| DOMANDE ESAME/ | Domande esami orali precedenti. |
| FILE FORNITI DAL PROF/ | File STOCK dal moodle del corso ( senza soluzioni ). |
| MIEI ESERCIZI/ | Soluzioni personali agli esercizi di laboratorio. |
| PER ESAME/ | Soluzioni personali + COMMENTI ( Materiale da usare per l'esame ) |
| APPUNTI GOODNOTES/ | Appunti manoscritti in PDF esportati da GoodNotes. -> COMMING SOON! ( 2,3 days). |
| LUCIDI/ | Slide del corso in PDF. |
| .vscode/ | Task e configurazioni per Visual Studio Code. |
| documentazione.pdf | Descrizione in LATEX della repository e del corso ( in breve ). |
- Apri due terminali.
- Nel primo compila ed esegui il server:
./serverUDP # o ./serverTCP - Nel secondo compila ed esegui il client:
./clientUDP # o ./clientTCP - Apri Wireshark, filtra per porta o protocollo e osserva i pacchetti.
gcc serverHTTP.c -o serverHTTP -lpthread
./serverHTTP 8000
xdg-open "http://127.0.0.1:8000/"- Avvia il server (
websocket_server.co equivalente). - Apri
client.htmlin un browser moderno. - Digita un messaggio per broadcast a tutti i client connessi.
# Avvia il server
gcc serverHTTP-REST.c -o rest_server -lpthread
./rest_server 8080
# Chiamata di test (curl):
curl "http://127.0.0.1:8080/api/somma?x=5&y=7"mosquitto -v # Avvia il broker
./publisher # Pubblica valori
./subscriber # Ascolta e stampa- Apri il file
.pcapngcorrispondente. - Usa Follow TCP/UDP Stream per ricostruire il dialogo.
- Confronta numeri di sequenza, flag, handshake e ritrasmissioni.
Nella cartella LUCIDI/ sono disponibili le slide ufficiali (socket, HTTP, WebSocket, REST, MQTT, architettura TCP/IP).
Gli appunti personali si trovano in APPUNTI GOODNOTES/, mentre 2_ripasso-reti.pdf fornisce un riassunto rapido dei concetti di rete in vista dell’esame.
- Aggiungere
Makefilee script CI con GitHub Actions. - Automatizzare test di integrazione per i servizi REST.
- Trascrivere appunti GoodNotes in Markdown.
Le pull‑request sono benvenute!
Per mantenere coerenza:
- Usa branch descrittivi (
feature/…,fix/…). - Segui la convenzione di stile clang‑format fornita in
.clang-format(work‑in‑progress). - Aggiorna la documentazione quando modifichi o aggiungi funzionalità.
Materiale fornito solo per uso didattico (licenza in definizione).
Contatta l’autore prima di redistribuire in pubblico.
- Simone Mattioli – Studente di Informatica, Università degli Studi di Verona | Anno corso 2024/2025
- Davide Quaglia – Docente del corso ( e pure molto bravo ), Università degli Studi di Verona