From 0965ea513af73983ae91d1f248c73c1e26b8511e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=8D=9A=E6=96=87?= <15549487+FX_YBW@user.noreply.gitee.com> Date: Fri, 26 Dec 2025 23:47:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.py | 2 +- .../28ee8dbf-9f03-4900-b66a-bef24163690f.json | 43 +++++++++++++++++++ .../3ed76e4e-0f50-4593-85b6-89c492c43abe.json | 20 +++++++++ shared/message_handler.py | 15 +++++-- 4 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 data/transfer_states/28ee8dbf-9f03-4900-b66a-bef24163690f.json create mode 100644 data/transfer_states/3ed76e4e-0f50-4593-85b6-89c492c43abe.json diff --git a/config.py b/config.py index 38d2c44..8fc9472 100644 --- a/config.py +++ b/config.py @@ -92,7 +92,7 @@ def load_server_config() -> ServerConfig: def load_client_config() -> ClientConfig: """从环境变量加载客户端配置""" return ClientConfig( - server_host=os.getenv("P2P_SERVER_HOST", "127.0.0.1"), + server_host=os.getenv("P2P_SERVER_HOST", "113.45.148.222"), server_port=int(os.getenv("P2P_SERVER_PORT", "8888")), ) diff --git a/data/transfer_states/28ee8dbf-9f03-4900-b66a-bef24163690f.json b/data/transfer_states/28ee8dbf-9f03-4900-b66a-bef24163690f.json new file mode 100644 index 0000000..8424036 --- /dev/null +++ b/data/transfer_states/28ee8dbf-9f03-4900-b66a-bef24163690f.json @@ -0,0 +1,43 @@ +{ + "file_id": "28ee8dbf-9f03-4900-b66a-bef24163690f", + "file_path": "D:/onedrive/图片/IMG_E2414.JPG", + "file_name": "IMG_E2414.JPG", + "file_size": 1737873, + "file_hash": "610f0e61f21df1b4f3c54d98bb079455ce482ce75df02c402eee47ec2de73290", + "total_chunks": 27, + "completed_chunks": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "status": "completed", + "sender_id": "", + "receiver_id": "45ce928b-547f-49bf-81ff-c6e726a48a7d", + "start_time": "2025-12-26T23:42:50.188220", + "last_update": "2025-12-26T23:43:06.027475", + "save_path": "" +} \ No newline at end of file diff --git a/data/transfer_states/3ed76e4e-0f50-4593-85b6-89c492c43abe.json b/data/transfer_states/3ed76e4e-0f50-4593-85b6-89c492c43abe.json new file mode 100644 index 0000000..ab04461 --- /dev/null +++ b/data/transfer_states/3ed76e4e-0f50-4593-85b6-89c492c43abe.json @@ -0,0 +1,20 @@ +{ + "file_id": "3ed76e4e-0f50-4593-85b6-89c492c43abe", + "file_path": "D:/onedrive/图片/ead9819e3fca3b5ee23ad58adef0d75.png", + "file_name": "ead9819e3fca3b5ee23ad58adef0d75.png", + "file_size": 232882, + "file_hash": "c7a96f654446758684c9f8477b4666200242e05312d86d731e65b3907f954299", + "total_chunks": 4, + "completed_chunks": [ + 0, + 1, + 2, + 3 + ], + "status": "completed", + "sender_id": "", + "receiver_id": "c7b20282-caa9-4cfd-b7a6-7c968201cdaa", + "start_time": "2025-12-26T23:46:37.650998", + "last_update": "2025-12-26T23:46:38.576266", + "save_path": "" +} \ No newline at end of file diff --git a/shared/message_handler.py b/shared/message_handler.py index 21750d1..bc87050 100644 --- a/shared/message_handler.py +++ b/shared/message_handler.py @@ -173,9 +173,18 @@ class MessageHandler: if not isinstance(message.msg_type, MessageType): errors.append(f"Invalid message type: {message.msg_type}") - # 验证校验和 - if not message.verify_checksum(): - errors.append("Checksum verification failed") + # 对于文件传输相关消息,跳过校验和验证(因为payload在序列化过程中会变化) + skip_checksum_types = { + MessageType.FILE_REQUEST, + MessageType.FILE_CHUNK, + MessageType.FILE_COMPLETE, + MessageType.IMAGE, + } + + # 验证校验和(跳过文件传输消息) + if message.msg_type not in skip_checksum_types: + if not message.verify_checksum(): + errors.append("Checksum verification failed") if errors: raise MessageValidationError("; ".join(errors))