Browse Source

可以指定通讯端口。

skyffire 1 năm trước cách đây
mục cha
commit
54c1128700
2 tập tin đã thay đổi với 23 bổ sung8 xóa
  1. 2 2
      global/src/params.rs
  2. 21 6
      src/main.rs

+ 2 - 2
global/src/params.rs

@@ -64,7 +64,7 @@ impl Params {
 
         Ok(params)
     }
-    pub fn new_json(file_path: &str) -> Result<Params, Box<dyn std::error::Error>> {
+    pub fn new_json(file_path: &str, call_port: u32) -> Result<Params, Box<dyn std::error::Error>> {
         // 打开文件并读取内容
         let json_contents = std::fs::read_to_string(file_path)?;
 
@@ -95,7 +95,7 @@ impl Params {
             used_pct: dec!(1),
             gamma: dec!(0.999),
             log_level: "info".to_string(),
-            port: 5555,
+            port: call_port,
         };
         Ok(params)
     }

+ 21 - 6
src/main.rs

@@ -2,6 +2,7 @@ mod server;
 mod control_c;
 mod core_libs;
 
+use std::str::FromStr;
 use std::sync::Arc;
 use std::sync::atomic::{AtomicBool, Ordering};
 use std::time::Duration;
@@ -42,19 +43,33 @@ fn log_level_init(log_str: String, port: u32, account_name: String) -> WorkerGua
 // 获取本地配置- json 文件解析
 fn read_params_json() -> Params {
     let mut path = "config.json";
+    let mut call_port = 5555;
 
     let args: Vec<String> = std::env::args().collect();
 
     for arg in &args {
-        if !arg.contains("--config") {
-            continue;
+        // Check for the --config argument and assign its value.
+        if arg.starts_with("--config=") {
+            let parts: Vec<&str> = arg.split('=').collect();
+            if parts.len() == 2 {
+                path = parts[1];
+            }
+        }
+
+        // Check for the --port argument and assign its value.
+        if arg.starts_with("--port=") {
+            let parts: Vec<&str> = arg.split('=').collect();
+            if parts.len() == 2 {
+                match u32::from_str(parts[1]) {
+                    Ok(num) => call_port = num,
+                    Err(_) => eprintln!("Invalid number for port: {}", parts[1]),
+                }
+            }
         }
-        let p: Vec<&str> = arg.split("=").collect();
-        path = p[1];
     }
 
-    println!("配置文件路径:{}", path);
-    let params = Params::new_json(path).unwrap();
+    println!("通讯端口:{}, 配置文件路径:{}", call_port, path);
+    let params = Params::new_json(path, call_port).unwrap();
     return params;
 }