mirror of
https://github.com/Noratrieb/terminal-chat.git
synced 2026-01-15 08:55:10 +01:00
Compare commits
7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9cbbaca88a | |||
| d9a17a6464 | |||
| 9c3d94f581 | |||
| c3e4016547 | |||
| fccb89b725 | |||
| 9071bd370c | |||
| 70bbde046b |
3 changed files with 17 additions and 6 deletions
11
README.md
Normal file
11
README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# terminal-chat
|
||||||
|
Peer-to-peer DM Terminal chat
|
||||||
|
|
||||||
|
## How to use it
|
||||||
|
Just start the program, then either (l)isten or (c)onnect, one person has to listen and then the other one has to connect to it.
|
||||||
|
The port is always 8080 for now, and the listeners ip address is shown for the listener, so it can easily be seen.
|
||||||
|
Then just write and the messages of the other person are shown in your terminal!
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
If it doesn't work, make sure that you connected to the correct ip address and port, and make sure that your firewall allows connections on port 8080 for this program.
|
||||||
|
If it still doesn't work open an issue.
|
||||||
|
|
@ -9,9 +9,9 @@ type StreamResult = Result<TcpStream, Box<dyn Error>>;
|
||||||
|
|
||||||
pub fn listen() -> StreamResult {
|
pub fn listen() -> StreamResult {
|
||||||
println!("Listening on {}:8080", local_ipaddress::get().unwrap());
|
println!("Listening on {}:8080", local_ipaddress::get().unwrap());
|
||||||
let listener = TcpListener::bind(("127.0.0.1", 8080))?;
|
let listener = TcpListener::bind(("0.0.0.0", 8080))?;
|
||||||
let stream = listener.incoming().next().unwrap()?;
|
let stream = listener.incoming().next().unwrap()?;
|
||||||
println!("Connected. Waiting for response stream...");
|
println!("Connected.");
|
||||||
println!("other adress: {}", stream.peer_addr()?.ip());
|
println!("other adress: {}", stream.peer_addr()?.ip());
|
||||||
|
|
||||||
Ok(stream)
|
Ok(stream)
|
||||||
|
|
@ -24,6 +24,7 @@ pub fn connect(address: String, port: String) -> StreamResult {
|
||||||
let stream = TcpStream::connect((&*address, port))?;
|
let stream = TcpStream::connect((&*address, port))?;
|
||||||
|
|
||||||
println!("Connected.");
|
println!("Connected.");
|
||||||
|
println!("other adress: {}", stream.peer_addr()?.ip());
|
||||||
|
|
||||||
Ok(stream)
|
Ok(stream)
|
||||||
}
|
}
|
||||||
|
|
@ -44,6 +45,7 @@ pub fn network_thread(mut stream: TcpStream, rx: Receiver<String>) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ui_thread(sx: Sender<String>) {
|
pub fn ui_thread(sx: Sender<String>) {
|
||||||
|
println!("You can now write messages to your peer!");
|
||||||
loop {
|
loop {
|
||||||
let input = input();
|
let input = input();
|
||||||
sx.send(input).expect("could not send value");
|
sx.send(input).expect("could not send value");
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,9 @@ fn main() {
|
||||||
Version 0.1"
|
Version 0.1"
|
||||||
);
|
);
|
||||||
|
|
||||||
println!("Do you want to listen(l) or connect(c) to a listener?");
|
println!("Do you want to (l)isten or (c)onnect to a listener?");
|
||||||
|
|
||||||
let result = if input().contains("l") {
|
let result = if input() == "l" {
|
||||||
listen()
|
listen()
|
||||||
} else {
|
} else {
|
||||||
println!("Address: (empty for default)");
|
println!("Address: (empty for default)");
|
||||||
|
|
@ -36,8 +36,6 @@ Version 0.1"
|
||||||
|
|
||||||
match result {
|
match result {
|
||||||
Ok(s) => {
|
Ok(s) => {
|
||||||
println!("Successful connection established.");
|
|
||||||
|
|
||||||
let (sx, rx): (Sender<String>, Receiver<String>) = mpsc::channel();
|
let (sx, rx): (Sender<String>, Receiver<String>) = mpsc::channel();
|
||||||
|
|
||||||
let net = thread::spawn(move || {
|
let net = thread::spawn(move || {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue