Skip to content

Commit

Permalink
chore: Simplified the instructions to connect the devices
Browse files Browse the repository at this point in the history
  • Loading branch information
gabrielmjr authored Sep 27, 2024
1 parent f09245f commit b02e5e1
Showing 1 changed file with 15 additions and 12 deletions.
27 changes: 15 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,20 @@
![Build state](https://github.com/gabrielmjr/terminal-local-chat/actions/workflows/maven.yml/badge.svg)

### How it works?
As the name suggests, it works locally between two devices (Later on this number will be increased), where one turns on [hotspot](https://en.wikipedia.org/wiki/Wi-Fi_hotspot#:~:text=A%20hotspot%20is%20a%20physical,to%20an%20Internet%20service%20provider.), other turns on [WI-Fi](https://en.wikipedia.org/wiki/Wi-Fi) and connects to the other's hotspot, both run the [jar file](https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jarGuide.html), follow the instructions, after all, they can send message from terminal for each other.
As the name suggests, it works locally between two devices (Later on this number will be increased), where one turns on [hotspot](https://en.wikipedia.org/wiki/Wi-Fi_hotspot#:~:text=A%20hotspot%20is%20a%20physical,to%20an%20Internet%20service%20provider.), we call this device as server, other turns on [WI-Fi](https://en.wikipedia.org/wiki/Wi-Fi) and connects to the hotspot, we call this device as client, both run the [jar file](https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jarGuide.html), follow the instructions, after all, they can chat together locally using terminal.

To make they communicate themselves, I used server socket, where after one device connect to the other, both sides waits for the received message and print it from a background [Thread](https://www.w3schools.com/java/java_threads.asp) and while the background thread waits for the received message, the main thread is sending the message by using socket connections and [streams](https://www.javatpoint.com/java-8-stream) does this conversion from Strings to byte arrays and does the reverse work.
To make they communicate themselves, I used server socket, where after one device connect to the other, both sides waits for the received message and print it from a background [Thread](https://www.w3schools.com/java/java_threads.asp) and while the background thread waits for the received message, the main thread is sending the message by using socket connections and [streams](https://www.javatpoint.com/java-8-stream) does this conversion from Strings to byte arrays and the reverse work.

The String before converted to bytes and sent, it's serialized to [JSON](https://www.json.org/json-en.html) and then converted to bytes and sent, who receives the JSON String only does the reverse work of who sends it (I'm about the codes, not persons).
The String before converted to bytes and be sent, it's serialized to [JSON](https://www.json.org/json-en.html) and then converted to bytes and sent, who receives the JSON String only does the reverse work of who sends it (I'm about the codes, not persons).


### Get started
To use of the terminal local chat, you must to:
1. Have two devices (and terminal in them).
2. In both devices, they must have, where one turns on hotspot and other connect to it by WI-FI to run it.
2. In the server device, you must turn on hotspot.
3. In the client device, you must connect to the server's hotspot, using WI-FI.
3. Have a [Java Envinronment](https://www.java.com/en/download/manual.jsp).
4. Download a [release](https://github.com/gabrielmjr/terminal-local-chat/releases) jar file (I recommend the latest). [Optionally you can clone the repository and compile it yourself]].
4. Download a [release](https://github.com/gabrielmjr/terminal-local-chat/releases) executable jar file (I recommend the latest). [Optionally you can clone the repository and compile it yourself]].
5. Run the jar file by using:
```
java -jar terminal-local-chat_<version>_.jar
Expand All @@ -27,33 +28,35 @@ To use of the terminal local chat, you must to:
```
Just enter an username.

***NOTE:*** This user/nick name will be shown in the other device.
> [!NOTE]
> This user/nick name will be shown in the other device.
7. The console will show you:
```
Type 1 to be the server (Turn on hotspot).
Type 2 to be the client (Turn on wifi).
```

To the device where hotspot is on, enter 1 and the terminal will show you:
8. To the device where hotspot is on, enter 1 and the terminal will show you:
```
>>> Enter the port to listen:
```
Just choose the port (1024-65535) and wait the other device to tonnect.
Use the shown data in the device who turned on hotspot, it will be:
- Just choose the port (1024-65535) and wait the other device to connect.
The terminal will show you:
```
Serving in ip: [your hotspot ip], port: [choosen port]
```
Use the hotspot ip and choosen port in the other device doing:

To the device where other's device hotspot is connected, enter 2 and the terminal will show you:
9. In the device where the WI-FI is connected, enter 2 and the terminal will show you:
```
>>> Enter the ip address:
```
Enter the ip shown in the device where hotspot is on, after that, the terminal will show you;
- Enter the ip shown in the device where hotspot is on, then the terminal will show you;
```
Enter the listened port:
```
Enter the choosen port and voilà, they're connected to each other, you're able to send messages, just enter something and it will show you in the other device's terminal.
- Enter the choosen port and voilà, they're connected to each other, you're able to send messages, just enter something and it will show you in the other device's terminal.

## License
```Copyright 2024 Gabriel MJr```
Expand Down

0 comments on commit b02e5e1

Please sign in to comment.