瀏覽代碼

服务端可以保存数据到数据库中了

master
OCEAN 2 月之前
父節點
當前提交
8da7bd25f2
共有 10 個檔案被更改,包括 565 行新增21 行删除
  1. +467
    -4
      tcp_server/Cargo.lock
  2. +3
    -0
      tcp_server/Cargo.toml
  3. +7
    -0
      tcp_server/config.toml
  4. +86
    -15
      tcp_server/src/main.rs
  5. +1
    -1
      tcp_server/target/debug/.fingerprint/tcp_server-d434eb7e44cc404e/bin-tcp_server
  6. +1
    -1
      tcp_server/target/debug/.fingerprint/tcp_server-d434eb7e44cc404e/bin-tcp_server.json
  7. 二進制
      tcp_server/target/debug/deps/tcp_server.exe
  8. 二進制
      tcp_server/target/debug/deps/tcp_server.pdb
  9. 二進制
      tcp_server/target/debug/tcp_server.exe
  10. 二進制
      tcp_server/target/debug/tcp_server.pdb

+ 467
- 4
tcp_server/Cargo.lock 查看文件

@@ -23,7 +23,7 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
dependencies = [
"getrandom",
"getrandom 0.2.15",
"once_cell",
"version_check",
]
@@ -66,6 +66,12 @@ version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"

[[package]]
name = "base64"
version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"

[[package]]
name = "bitflags"
version = "1.3.2"
@@ -87,6 +93,18 @@ dependencies = [
"generic-array",
]

[[package]]
name = "bumpalo"
version = "3.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf"

[[package]]
name = "byteorder"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"

[[package]]
name = "bytes"
version = "1.10.1"
@@ -145,6 +163,7 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer",
"crypto-common",
"subtle",
]

[[package]]
@@ -153,6 +172,66 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"

[[package]]
name = "fallible-iterator"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"

[[package]]
name = "futures-channel"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
dependencies = [
"futures-core",
"futures-sink",
]

[[package]]
name = "futures-core"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"

[[package]]
name = "futures-macro"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
"syn",
]

[[package]]
name = "futures-sink"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"

[[package]]
name = "futures-task"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"

[[package]]
name = "futures-util"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
dependencies = [
"futures-core",
"futures-macro",
"futures-sink",
"futures-task",
"pin-project-lite",
"pin-utils",
"slab",
]

[[package]]
name = "generic-array"
version = "0.14.7"
@@ -171,7 +250,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
"libc",
"wasi",
"wasi 0.11.0+wasi-snapshot-preview1",
]

[[package]]
name = "getrandom"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0"
dependencies = [
"cfg-if",
"libc",
"r-efi",
"wasi 0.14.2+wasi-0.2.4",
]

[[package]]
@@ -189,12 +280,31 @@ dependencies = [
"ahash",
]

[[package]]
name = "hmac"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
"digest",
]

[[package]]
name = "itoa"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"

[[package]]
name = "js-sys"
version = "0.3.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
dependencies = [
"once_cell",
"wasm-bindgen",
]

[[package]]
name = "json5"
version = "0.4.1"
@@ -234,6 +344,22 @@ dependencies = [
"scopeguard",
]

[[package]]
name = "log"
version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"

[[package]]
name = "md-5"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
dependencies = [
"cfg-if",
"digest",
]

[[package]]
name = "memchr"
version = "2.7.4"
@@ -262,7 +388,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd"
dependencies = [
"libc",
"wasi",
"wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys",
]

@@ -330,6 +456,12 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"

[[package]]
name = "percent-encoding"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"

[[package]]
name = "pest"
version = "2.8.0"
@@ -375,12 +507,76 @@ dependencies = [
"sha2",
]

[[package]]
name = "phf"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
dependencies = [
"phf_shared",
]

[[package]]
name = "phf_shared"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
dependencies = [
"siphasher",
]

[[package]]
name = "pin-project-lite"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"

[[package]]
name = "pin-utils"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"

[[package]]
name = "postgres-protocol"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54"
dependencies = [
"base64 0.22.1",
"byteorder",
"bytes",
"fallible-iterator",
"hmac",
"md-5",
"memchr",
"rand",
"sha2",
"stringprep",
]

[[package]]
name = "postgres-types"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48"
dependencies = [
"bytes",
"fallible-iterator",
"postgres-protocol",
"serde",
"serde_json",
]

[[package]]
name = "ppv-lite86"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
dependencies = [
"zerocopy",
]

[[package]]
name = "proc-macro2"
version = "1.0.95"
@@ -399,6 +595,41 @@ dependencies = [
"proc-macro2",
]

[[package]]
name = "r-efi"
version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"

[[package]]
name = "rand"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97"
dependencies = [
"rand_chacha",
"rand_core",
]

[[package]]
name = "rand_chacha"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
dependencies = [
"ppv-lite86",
"rand_core",
]

[[package]]
name = "rand_core"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
dependencies = [
"getrandom 0.3.2",
]

[[package]]
name = "redox_syscall"
version = "0.5.11"
@@ -414,7 +645,7 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a"
dependencies = [
"base64",
"base64 0.13.1",
"bitflags 1.3.2",
"serde",
]
@@ -499,6 +730,21 @@ dependencies = [
"libc",
]

[[package]]
name = "siphasher"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"

[[package]]
name = "slab"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
dependencies = [
"autocfg",
]

[[package]]
name = "smallvec"
version = "1.15.0"
@@ -515,6 +761,23 @@ dependencies = [
"windows-sys",
]

[[package]]
name = "stringprep"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1"
dependencies = [
"unicode-bidi",
"unicode-normalization",
"unicode-properties",
]

[[package]]
name = "subtle"
version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"

[[package]]
name = "syn"
version = "2.0.100"
@@ -531,7 +794,10 @@ name = "tcp_server"
version = "0.1.0"
dependencies = [
"config",
"serde",
"serde_json",
"tokio",
"tokio-postgres",
]

[[package]]
@@ -554,6 +820,21 @@ dependencies = [
"syn",
]

[[package]]
name = "tinyvec"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71"
dependencies = [
"tinyvec_macros",
]

[[package]]
name = "tinyvec_macros"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"

[[package]]
name = "tokio"
version = "1.44.2"
@@ -583,6 +864,45 @@ dependencies = [
"syn",
]

[[package]]
name = "tokio-postgres"
version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c95d533c83082bb6490e0189acaa0bbeef9084e60471b696ca6988cd0541fb0"
dependencies = [
"async-trait",
"byteorder",
"bytes",
"fallible-iterator",
"futures-channel",
"futures-util",
"log",
"parking_lot",
"percent-encoding",
"phf",
"pin-project-lite",
"postgres-protocol",
"postgres-types",
"rand",
"socket2",
"tokio",
"tokio-util",
"whoami",
]

[[package]]
name = "tokio-util"
version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034"
dependencies = [
"bytes",
"futures-core",
"futures-sink",
"pin-project-lite",
"tokio",
]

[[package]]
name = "toml"
version = "0.5.11"
@@ -604,12 +924,33 @@ version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"

[[package]]
name = "unicode-bidi"
version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"

[[package]]
name = "unicode-ident"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"

[[package]]
name = "unicode-normalization"
version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
dependencies = [
"tinyvec",
]

[[package]]
name = "unicode-properties"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"

[[package]]
name = "version_check"
version = "0.9.5"
@@ -622,6 +963,99 @@ version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"

[[package]]
name = "wasi"
version = "0.14.2+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
dependencies = [
"wit-bindgen-rt",
]

[[package]]
name = "wasite"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"

[[package]]
name = "wasm-bindgen"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
dependencies = [
"cfg-if",
"once_cell",
"wasm-bindgen-macro",
]

[[package]]
name = "wasm-bindgen-backend"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
dependencies = [
"bumpalo",
"log",
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-macro"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
]

[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
dependencies = [
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-shared"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
dependencies = [
"unicode-ident",
]

[[package]]
name = "web-sys"
version = "0.3.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
dependencies = [
"js-sys",
"wasm-bindgen",
]

[[package]]
name = "whoami"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7"
dependencies = [
"redox_syscall",
"wasite",
"web-sys",
]

[[package]]
name = "windows-sys"
version = "0.52.0"
@@ -695,6 +1129,15 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"

[[package]]
name = "wit-bindgen-rt"
version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
dependencies = [
"bitflags 2.9.0",
]

[[package]]
name = "yaml-rust"
version = "0.4.5"
@@ -703,3 +1146,23 @@ checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
dependencies = [
"linked-hash-map",
]

[[package]]
name = "zerocopy"
version = "0.8.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879"
dependencies = [
"zerocopy-derive",
]

[[package]]
name = "zerocopy-derive"
version = "0.8.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be"
dependencies = [
"proc-macro2",
"quote",
"syn",
]

+ 3
- 0
tcp_server/Cargo.toml 查看文件

@@ -6,3 +6,6 @@ edition = "2021"
[dependencies]
tokio = { version = "1.28", features = ["full"] }
config = "0.13"
tokio-postgres = { version = "0.7", features = ["with-serde_json-1"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

+ 7
- 0
tcp_server/config.toml 查看文件

@@ -1,3 +1,10 @@
[server]
address = "127.0.0.1"
port = 9090

[database]
host = "10.180.4.100"
port = 5432
name = "postgres"
user = "postgres"
password = "Auseft@2025qwer"

+ 86
- 15
tcp_server/src/main.rs 查看文件

@@ -1,15 +1,68 @@
use tokio::net::TcpListener;
use tokio::io::{AsyncReadExt, AsyncWriteExt};
use config::Config;
use tokio_postgres::{NoTls, Error as PgError};
use serde::{Deserialize, Serialize};
use std::sync::Arc;

#[derive(Debug, Serialize, Deserialize)]
struct InstrumentInfo {
id: i32,
informationid: i32,
instrumentcode: String,
laboratoryid: i32,
name: String,
remark: String,
specification: String,
}

async fn connect_db(config: &Config) -> Result<tokio_postgres::Client, PgError> {
let host = config.get_string("database.host").unwrap();
let port = config.get_int("database.port").unwrap() as u16;
let dbname = config.get_string("database.name").unwrap();
let user = config.get_string("database.user").unwrap();
let password = config.get_string("database.password").unwrap();

let connection_string = format!(
"host={} port={} dbname={} user={} password={}",
host, port, dbname, user, password
);

let (client, connection) = tokio_postgres::connect(&connection_string, NoTls).await?;
// 在后台运行连接
tokio::spawn(async move {
if let Err(e) = connection.await {
eprintln!("数据库连接错误: {}", e);
}
});

Ok(client)
}

async fn insert_instrument(client: &tokio_postgres::Client, info: &InstrumentInfo) -> Result<(), PgError> {
client.execute(
"INSERT INTO public.hy_instrument (id, informationid, instrumentcode, laboratoryid, name, remark, specification)
OVERRIDING SYSTEM VALUE
VALUES ($1, $2, $3, $4, $5, $6, $7)",
&[
&info.id,
&info.informationid,
&info.instrumentcode,
&info.laboratoryid,
&info.name,
&info.remark,
&info.specification,
],
)
.await?;

println!("成功插入仪器信息: {}", info.instrumentcode);
Ok(())
}

fn check_ok_message(message: &[u8]) -> u8 {
let message_str = String::from_utf8_lossy(message);
0xFF
// if message_str.contains("OK") {
// 0xFF
// } else {
// 0x00
// }
}

#[tokio::main]
@@ -19,37 +72,55 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
.add_source(config::File::with_name("config"))
.build()?;

// 连接数据库
let client = connect_db(&settings).await?;
let client = Arc::new(client);
println!("数据库连接成功");

let address = settings.get_string("server.address")?;
let port = settings.get_int("server.port")? as u16;
let bind_address = format!("{}:{}", address, port);

let listener = TcpListener::bind(&bind_address).await?;
println!("Server listening on {}", bind_address);
println!("服务器监听地址: {}", bind_address);

loop {
let (mut socket, addr) = listener.accept().await?;
println!("New client connected: {}", addr);
println!("新客户端连接: {}", addr);
let client = Arc::clone(&client);

tokio::spawn(async move {
let mut buf = [0; 1024];
let mut buf = [0; 1024 * 64]; // 增加缓冲区大小到64KB

loop {
match socket.read(&mut buf).await {
Ok(0) => {
println!("Client disconnected: {}", addr);
println!("客户端断开连接: {}", addr);
return;
}
Ok(n) => {
// Check message and send single bit response
let response = check_ok_message(&buf[..n]);
println!("接收到消息: {},响应: {}", String::from_utf8_lossy(&buf[..n]), response);
let data = &buf[..n];
match serde_json::from_slice::<InstrumentInfo>(data) {
Ok(info) => {
println!("接收到仪器信息: {:?}", info);
if let Err(e) = insert_instrument(&client, &info).await {
eprintln!("插入数据失败: {}", e);
}
}
Err(e) => {
eprintln!("解析JSON失败: {}", e);
eprintln!("接收到的数据: {}", String::from_utf8_lossy(data));
}
}

let response = check_ok_message(data);
if let Err(e) = socket.write_all(&[response]).await {
println!("Failed to write to socket: {}", e);
println!("发送响应失败: {}", e);
return;
}
}
Err(e) => {
println!("Failed to read from socket: {}", e);
println!("读取数据失败: {}", e);
return;
}
}


+ 1
- 1
tcp_server/target/debug/.fingerprint/tcp_server-d434eb7e44cc404e/bin-tcp_server 查看文件

@@ -1 +1 @@
e89aa7a333c35298
4ef5d624c06b520e

+ 1
- 1
tcp_server/target/debug/.fingerprint/tcp_server-d434eb7e44cc404e/bin-tcp_server.json 查看文件

@@ -1 +1 @@
{"rustc":13800692020808712694,"features":"[]","declared_features":"[]","target":8765685456636761285,"profile":8731458305071235362,"path":4942398508502643691,"deps":[[5138218615291878843,"tokio",false,15265975105261538754],[18150860780478849731,"config",false,13211899394289725315]],"local":[{"CheckDepInfo":{"dep_info":"debug\\.fingerprint\\tcp_server-d434eb7e44cc404e\\dep-bin-tcp_server","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
{"rustc":13800692020808712694,"features":"[]","declared_features":"[]","target":8765685456636761285,"profile":8731458305071235362,"path":4942398508502643691,"deps":[[4679662532519462650,"tokio_postgres",false,5063794336024998218],[5138218615291878843,"tokio",false,15265975105261538754],[9689903380558560274,"serde",false,9113250839399411242],[15367738274754116744,"serde_json",false,13898242479202773795],[18150860780478849731,"config",false,16692050494851569320]],"local":[{"CheckDepInfo":{"dep_info":"debug\\.fingerprint\\tcp_server-d434eb7e44cc404e\\dep-bin-tcp_server","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

二進制
tcp_server/target/debug/deps/tcp_server.exe 查看文件


二進制
tcp_server/target/debug/deps/tcp_server.pdb 查看文件


二進制
tcp_server/target/debug/tcp_server.exe 查看文件


二進制
tcp_server/target/debug/tcp_server.pdb 查看文件


Loading…
取消
儲存