Feat: Auto find internal IP address
- Updated README.md to reflect changes
This commit is contained in:
		
							
								
								
									
										49
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										49
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							@@ -64,6 +64,12 @@ version = "1.3.2"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 | 
					checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "byteorder"
 | 
				
			||||||
 | 
					version = "1.4.3"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "bytes"
 | 
					name = "bytes"
 | 
				
			||||||
version = "1.2.1"
 | 
					version = "1.2.1"
 | 
				
			||||||
@@ -171,6 +177,18 @@ version = "0.2.132"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
 | 
					checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "local-ip-address"
 | 
				
			||||||
 | 
					version = "0.4.7"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "74d6f43d42d775afa8073bfa6aba569b340a3635efa8c9f7702c9c6ed209692f"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "libc",
 | 
				
			||||||
 | 
					 "neli",
 | 
				
			||||||
 | 
					 "thiserror",
 | 
				
			||||||
 | 
					 "windows-sys",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "lock_api"
 | 
					name = "lock_api"
 | 
				
			||||||
version = "0.4.7"
 | 
					version = "0.4.7"
 | 
				
			||||||
@@ -202,6 +220,7 @@ version = "0.1.0"
 | 
				
			|||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "color-eyre",
 | 
					 "color-eyre",
 | 
				
			||||||
 "env_logger",
 | 
					 "env_logger",
 | 
				
			||||||
 | 
					 "local-ip-address",
 | 
				
			||||||
 "log",
 | 
					 "log",
 | 
				
			||||||
 "tokio",
 | 
					 "tokio",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -227,6 +246,16 @@ dependencies = [
 | 
				
			|||||||
 "windows-sys",
 | 
					 "windows-sys",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "neli"
 | 
				
			||||||
 | 
					version = "0.5.3"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "9053554eb5dcb7e10d9cdab1206965bde870eed5d0d341532ca035e3ba221508"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "byteorder",
 | 
				
			||||||
 | 
					 "libc",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "num_cpus"
 | 
					name = "num_cpus"
 | 
				
			||||||
version = "1.13.1"
 | 
					version = "1.13.1"
 | 
				
			||||||
@@ -397,6 +426,26 @@ dependencies = [
 | 
				
			|||||||
 "winapi-util",
 | 
					 "winapi-util",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "thiserror"
 | 
				
			||||||
 | 
					version = "1.0.32"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "thiserror-impl",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "thiserror-impl"
 | 
				
			||||||
 | 
					version = "1.0.32"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "proc-macro2",
 | 
				
			||||||
 | 
					 "quote",
 | 
				
			||||||
 | 
					 "syn",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "thread_local"
 | 
					name = "thread_local"
 | 
				
			||||||
version = "1.1.4"
 | 
					version = "1.1.4"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,3 +10,4 @@ color-eyre = "0.6.1"
 | 
				
			|||||||
tokio = { version = "1.18.2", features = ["full"] }
 | 
					tokio = { version = "1.18.2", features = ["full"] }
 | 
				
			||||||
log = "0.4.17"
 | 
					log = "0.4.17"
 | 
				
			||||||
env_logger = "0.9.0"
 | 
					env_logger = "0.9.0"
 | 
				
			||||||
 | 
					local-ip-address = "0.4.7"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,9 +13,8 @@ A wannabe discord clone but currently only support websocket real time chatting
 | 
				
			|||||||
### Development
 | 
					### Development
 | 
				
			||||||
- Run the server with `cargo run` or `RUST_LOG=debug cargo run` to run with debug.
 | 
					- Run the server with `cargo run` or `RUST_LOG=debug cargo run` to run with debug.
 | 
				
			||||||
### Production
 | 
					### Production
 | 
				
			||||||
- Run the binary with `minh_cord {LOCAL_IP_ADDRESS}`.
 | 
					- Run the binary with `./minh_cord`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Connecting to the server
 | 
					## Connecting to the server
 | 
				
			||||||
- Get your local IP address of the machine you're running the server on: i.e `192.168.0.100`
 | 
					 | 
				
			||||||
- Run the server with the above commands.
 | 
					- Run the server with the above commands.
 | 
				
			||||||
- Run `telnet 192.168.0.100` from a client to connect to the server.
 | 
					- Run `telnet {SERVER_INTERNAL_IP_ADDRESS}` from a client to connect to the server.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,17 +5,15 @@ use tokio::{
 | 
				
			|||||||
    sync::broadcast,
 | 
					    sync::broadcast,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
use log::debug;
 | 
					use log::debug;
 | 
				
			||||||
use std::env;
 | 
					use local_ip_address::local_ip;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[tokio::main]
 | 
					#[tokio::main]
 | 
				
			||||||
async fn main() -> Result<(), Report> {
 | 
					async fn main() -> Result<(), Report> {
 | 
				
			||||||
    let args: Vec<String> = env::args().collect();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    env_logger::init();
 | 
					    env_logger::init();
 | 
				
			||||||
    // Setup the Environment
 | 
					    // Setup the Environment
 | 
				
			||||||
    setup()?;
 | 
					    setup()?;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let ip_address = &args[1];
 | 
					    let ip_address = local_ip().unwrap();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Set up a TCP listener to listen for incoming tcp requests at the ip address that is passed from the command line
 | 
					    // Set up a TCP listener to listen for incoming tcp requests at the ip address that is passed from the command line
 | 
				
			||||||
    let listener = TcpListener::bind(format!("{ip_address}:8080")).await.unwrap();
 | 
					    let listener = TcpListener::bind(format!("{ip_address}:8080")).await.unwrap();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user