Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matbagnoletti/unicastudpsocketchat
Applicazione Java che utilizza le socket per implementare una comunicazione TCP unicast tra Client e Server.
https://github.com/matbagnoletti/unicastudpsocketchat
client-server java socket udp
Last synced: about 2 months ago
JSON representation
Applicazione Java che utilizza le socket per implementare una comunicazione TCP unicast tra Client e Server.
- Host: GitHub
- URL: https://github.com/matbagnoletti/unicastudpsocketchat
- Owner: matbagnoletti
- License: other
- Created: 2024-04-11T16:32:12.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-04-11T16:39:37.000Z (9 months ago)
- Last Synced: 2024-04-11T19:19:37.629Z (9 months ago)
- Topics: client-server, java, socket, udp
- Language: Java
- Homepage:
- Size: 9.77 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
UnicastUDPSocketChat
Made by @matbagnoletti
Docenti: prof.ssa @mciuchetti e prof.ssa Fioroni
Corso TPSIT a.s. 2023/2024, ITTS A. Volta (PG)
## Descrizione
Applicazione Java che utilizza le socket per implementare una comunicazione UDP unicast tra più Client e un Server.## Requisiti
- [JDK](https://www.oracle.com/it/java/technologies/downloads/) (v8 o superiore)
- [Gradle](https://gradle.org/install/) (v8.6)È possibile visualizzare le versioni già presenti sul proprio dispositivo mediante i seguenti comandi:
```
java -version
gradle -v
```## Installazione e utilizzo
1. Scaricare il file compresso del progetto
2. Estrarre il progetto
3. Eseguire il Server e il Client separatamente:
- Tramite IDE
- Tramite terminale:
1. Naviga nella root del progetto
2. Esegui la build del progetto: `gradle build`
3. Identifica il file `jar` nella directory `/build/libs/`
4. Esegui il Server: `java -cp build/libs/.jar chat.MainServer`
5. Esegui il Client in un'altra finestra: `java -cp build/libs/.jar chat.MainClient`## Struttura e funzionamento
Il progetto si compone da quattro classi:- Nel package `chat`:
- L'entità [`Client`](src/main/java/chat/Client.java)
- [`MainClient`](src/main/java/chat/MainClient.java), la classe di avvio del Client
- L'entità [`Server`](src/main/java/chat/Server.java)
- [`MainServer`](src/main/java/chat/MainServer.java), la classe di avvio del ServerLe due entità, dopo una configurazione iniziale, permetteranno all'utente di poter scrivere messaggi da inviare all'altra entità e ricevere, contemporaneamente (tramite l'utilizzo dei thread), messaggi che verranno stampati a video.
Il Server permette a più Client di comunicare con lui, ma i Client potranno comunicare solo con il Server, essendo una comunicazione unicast.
Lato-Server per poter comunicare con uno dei possibili Client connessi sarà necessario scrivere:
```text
>
```La conversazione termina quando uno dei due digita `exit` nella console: in questo caso verranno invocati i rispettivi metodi di chiusura delle socket e segnalazione alle altre entità dell'avvenuta "disconnessione" (`chiudi()`).
## Licenza d'uso
Questo progetto (e tutte le sue versioni) sono rilasciate sotto la [MB General Copyleft License](LICENSE).