Vari esercizi su socket programming (si compilano tutti con "javac nomefile.java"):

- NewEmailSender -
Programma lato client che dialoga con un server smtp sulla porta 25. Prende come input da linea di comando il nome del server smtp, la porta, e l'indirizzo di posta eletronnica del mittente; chiede interattivamente destinazione, subject e testo del messaggio; un esempio di utilizzo e' 
java NewEmailSender smtp.univr.it 25 user@domain.it
Attualmente il server smtp di univr e' chiuso, per cui per testare il programma bisogna cercare (o mettere in piedi) un proprio server smtp

- TCPChat, nelle due versioni _client e _server - 
Primo esempio di applicazione client/server, una semplice chat. Il server deve specificare una porta di ascolto, il client l'indirizzo del server e la relativa porta; ad es.
java TCPChat_server 9876
java TCPChat_client IPserver 9876
Se fatti girare sulla stessa macchina, allora IPserver sara' 127.0.0.1 (localhost)

- TCPChat_clientServer -
Rimuove le limitazioni di schema a "botta e risposta" della versione precedente; una volta connessi si puo' scrivere per piu' linee; come nel caso precedente, il primo utente che si accende deve specificare solo la porta di ascolto, il secondo l'indirizzo IP del compagno a cui vuole parlare e relativa porta; ad es 
java TCPChat_clientServer 9876
java TCPChat_clientServer IPbuddy 9876

- UDPChat_clientServer -
Stesso che TCPChat_clientServer, ma connectionless; proprio perche' e' connectionless, nella fase di apertura del socket, chi si accende per secondo deve mandare un messaggio di "hello", in modo da fornire il proprio indirizzo IP e numero di porta all'altro utente

_ TCPClient, TCPServer
Applicazione che invia una stringa a un server che la elabora con il metodo toUpperCase.

- UDPClient, UDPServer
Versione connectinless dell'applicazione precedente.