| 作者 | SHA1 | 備註 | 提交日期 |
|---|---|---|---|
|
|
edc73a8e63 | no message | 5 年之前 |
|
|
beefaa01c5 | no message | 5 年之前 |
|
|
4df51e06ba | 修改部分显示BUG,异常释放 | 5 年之前 |
| @@ -1,66 +1,39 @@ | |||||
| 2020-9-5 19:23:6 Send:00 00 00 00 00 08 01 10 00 00 00 01 02 FF FF | |||||
| 2020-9-5 19:23:30 Recv:00 00 00 00 00 06 01 10 00 00 00 01 | |||||
| 2020-9-5 19:24:29 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:24:50 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:26:22 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:26:31 Recv:00 00 00 00 00 05 01 03 02 FF FF | |||||
| 2020-9-5 19:27:11 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:27:17 Recv:00 00 00 00 00 05 01 03 02 FF FF | |||||
| 2020-9-5 19:27:38 Send:00 00 00 00 00 08 01 10 00 01 00 01 02 11 11 | |||||
| 2020-9-5 19:27:44 Recv:00 00 00 00 00 06 01 10 00 01 00 01 | |||||
| 2020-9-5 19:28:20 Send:00 00 00 00 00 06 01 03 00 01 00 01 | |||||
| 2020-9-5 19:28:55 Send:00 00 00 00 00 06 01 03 00 01 00 01 | |||||
| 2020-9-5 19:30:38 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:30:38 Recv:00 00 00 00 00 05 01 03 02 FF FF | |||||
| 2020-9-5 19:30:42 Send:00 00 00 00 00 06 01 03 00 01 00 01 | |||||
| 2020-9-5 19:30:42 Recv:00 00 00 00 00 05 01 03 02 11 FF | |||||
| 2020-9-5 19:31:1 Send:00 00 00 00 00 08 01 10 00 03 00 01 02 11 11 | |||||
| 2020-9-5 19:31:1 Recv:00 00 00 00 00 06 01 10 00 03 00 01 | |||||
| 2020-9-5 19:31:8 Send:00 00 00 00 00 06 01 03 00 03 00 01 | |||||
| 2020-9-5 19:31:49 Send:00 00 00 00 00 06 01 03 00 03 00 01 | |||||
| 2020-9-5 19:32:50 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:33:17 Send:00 00 00 00 00 08 01 10 00 02 00 01 02 11 11 | |||||
| 2020-9-5 19:38:12 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:38:12 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
| 2020-9-5 19:38:24 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
| 2020-9-5 19:38:24 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
| 2020-9-5 19:38:37 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:38:56 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:38:56 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
| 2020-9-5 19:39:5 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-5 19:39:5 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
| 2020-9-5 19:40:28 Send:00 00 00 00 00 06 01 03 00 00 00 0A | |||||
| 2020-9-5 19:40:28 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
| 2020-9-5 19:40:41 Send:00 00 00 00 00 06 01 03 00 00 00 0A | |||||
| 2020-9-5 19:40:52 Send:00 00 00 00 00 06 01 03 00 00 00 0A | |||||
| 2020-9-5 19:40:52 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
| 2020-9-7 18:40:38 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
| 2020-9-7 18:40:38 Recv:00 00 00 00 00 04 01 01 01 00 | |||||
| 2020-9-7 18:40:51 Send:00 00 00 00 00 06 01 03 00 00 00 64 | |||||
| 2020-9-7 18:40:51 Recv:00 00 00 00 00 CB 01 03 C8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-7 18:41:20 Send:00 00 00 00 00 06 01 03 00 63 00 01 | |||||
| 2020-9-7 18:41:20 Recv:00 00 00 00 00 05 01 03 02 00 00 | |||||
| 2020-9-7 18:41:34 Send:00 00 00 00 00 06 01 03 00 63 00 03 | |||||
| 2020-9-7 18:41:34 Recv:00 00 00 00 00 09 01 03 06 00 00 00 00 00 00 | |||||
| 2020-9-7 18:41:55 Send:00 00 00 00 00 06 01 03 00 63 00 03 | |||||
| 2020-9-7 18:41:55 Recv:00 00 00 00 00 09 01 03 06 00 00 00 00 00 00 | |||||
| 2020-9-7 18:43:7 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-7 18:44:25 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01 | |||||
| 2020-9-7 18:44:25 Recv:00 00 00 00 00 06 01 0F 00 00 00 01 | |||||
| 2020-9-7 18:45:27 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01 | |||||
| 2020-9-7 18:46:53 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01 | |||||
| 2020-9-7 18:47:2 Recv:00 00 00 00 00 06 01 0F 00 00 00 01 | |||||
| 2020-9-7 18:47:16 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01 | |||||
| 2020-9-7 18:47:30 Recv:00 00 00 00 00 06 01 0F 00 00 00 01 | |||||
| 2020-9-8 14:42:47 Send:00 00 00 00 00 06 01 01 00 00 07 B0 | |||||
| 2020-9-8 14:45:56 Send:00 00 00 00 00 06 01 01 00 00 07 B0 | |||||
| 2020-9-8 14:46:36 Send:00 00 00 00 00 06 09 01 00 00 07 B0 | |||||
| 2020-9-8 14:51:59 Send:00 00 00 00 00 06 01 01 00 00 07 B0 | |||||
| 2020-9-8 14:51:59 Recv:00 00 00 00 00 F9 01 01 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-8 14:53:17 Send:00 00 00 00 00 06 01 01 00 00 07 B0 | |||||
| 2020-9-8 14:53:17 Recv:00 00 00 00 00 F9 01 01 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-8 14:55:11 Send:00 00 00 00 00 06 01 01 00 00 07 D0 | |||||
| 2020-9-8 14:55:43 Send:00 00 00 00 00 06 09 01 00 00 07 D0 | |||||
| 2020-9-8 14:55:47 Recv:00 00 00 00 00 FD 09 01 FB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-8 14:56:20 Send:00 00 00 00 00 06 09 01 00 00 07 B0 | |||||
| 2020-9-8 14:56:23 Recv:00 00 00 00 00 F9 09 01 F7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-9 16:26:47 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
| 2020-9-9 16:26:47 Recv:00 00 00 00 00 05 01 03 02 00 FF | |||||
| 2020-9-9 16:27:3 Send:00 00 00 00 00 06 01 03 00 00 00 05 | |||||
| 2020-9-9 16:27:3 Recv:00 00 00 00 00 0D 01 03 0A 00 FF 00 FF 00 FF 00 00 00 FF | |||||
| 2020-9-9 16:27:14 Send:00 00 00 00 00 06 01 03 00 00 00 7D | |||||
| 2020-9-9 16:27:14 Recv:00 00 00 00 00 FD 01 03 FA 00 FF 00 FF 00 FF 00 00 00 FF 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-9 16:27:51 Send:00 00 00 00 00 06 01 03 00 C7 00 01 | |||||
| 2020-9-9 16:27:51 Recv:00 00 00 00 00 05 01 03 02 00 00 | |||||
| 2020-9-9 16:28:4 Send:00 00 00 00 00 06 01 03 00 C7 00 02 | |||||
| 2020-9-9 16:28:4 Recv:00 00 00 00 00 03 01 83 02 | |||||
| 2020-9-9 16:50:19 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01 | |||||
| 2020-9-9 16:50:19 Recv:00 00 00 00 00 06 01 0F 00 00 00 01 | |||||
| 2020-9-9 16:51:12 Send:00 00 00 00 00 13 01 0F 00 00 00 64 0D FF FF FF FF FF FF FF FF FF FF FF FF FF | |||||
| 2020-9-9 16:52:30 Send:00 00 00 00 00 13 01 0F 00 00 00 64 0D FF FF FF FF FF FF FF FF FF FF FF FF FF | |||||
| 2020-9-9 16:52:30 Recv:00 00 00 00 00 06 01 0F 00 00 00 64 | |||||
| 2020-9-9 16:54:19 Send:00 00 00 00 00 06 01 01 00 00 07 B0 | |||||
| 2020-9-9 16:54:20 Recv:00 00 00 00 00 F9 01 01 F6 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-9 16:55:42 Send:00 00 00 00 00 FC 01 0F 00 00 07 B0 F6 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-9 16:55:42 Recv:00 00 00 00 00 06 01 0F 00 00 07 B0 | |||||
| 2020-9-9 17:13:32 Send:00 00 00 00 00 07 01 0F 07 CF 00 01 01 01 | |||||
| 2020-9-9 17:13:59 Send:00 00 00 00 00 07 01 0F 07 CF 00 01 01 01 | |||||
| 2020-9-9 17:14:0 Recv:00 00 00 00 00 06 01 0F 07 CF 00 01 | |||||
| 2020-9-9 17:14:34 Send:00 00 00 00 00 07 01 0F 07 CF 00 02 01 03 | |||||
| 2020-9-9 17:14:53 Send:00 00 00 00 00 07 01 0F 07 CF 00 02 01 01 | |||||
| 2020-9-9 17:15:12 Send:00 00 00 00 00 07 01 0F 07 CF 00 02 01 03 | |||||
| 2020-9-9 17:15:12 Recv:00 00 00 00 00 03 01 8F 02 | |||||
| 2020-9-9 17:16:15 Send:00 00 00 00 00 06 01 03 00 00 00 7B | |||||
| 2020-9-9 17:16:15 Recv:00 00 00 00 00 F9 01 03 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-9 17:17:54 Send:00 00 00 00 00 FC 01 10 00 00 00 7B F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
| 2020-9-9 17:17:54 Recv:00 00 00 00 00 06 01 10 00 00 00 7B | |||||
| 2020-9-9 17:18:38 Send:00 00 00 00 00 08 01 10 00 00 00 01 02 FF FF | |||||
| 2020-9-9 17:18:54 Send:00 00 00 00 00 08 01 10 00 00 00 01 02 FF FF | |||||
| 2020-9-9 17:18:55 Recv:00 00 00 00 00 06 01 10 00 00 00 01 | |||||
| 2020-9-9 17:19:37 Send:00 00 00 00 00 10 01 10 00 00 00 05 0A FF FF FF FF FF FF FF FF FF FF | |||||
| 2020-9-9 17:19:37 Recv:00 00 00 00 00 06 01 10 00 00 00 05 | |||||
| 2020-9-9 17:20:25 Send:00 00 00 00 00 08 01 10 00 C7 00 01 02 FF FF | |||||
| 2020-9-9 17:20:26 Recv:00 00 00 00 00 06 01 10 00 C7 00 01 | |||||
| 2020-9-9 17:21:5 Send:00 00 00 00 00 0A 01 10 00 C7 00 02 04 FF FF FF FF | |||||
| 2020-9-9 17:21:5 Recv:00 00 00 00 00 03 01 90 02 | |||||
| @@ -76,7 +76,7 @@ void Input_IP(string& IP, unsigned int *Port_number) | |||||
| cout << "请重新输入从站端口号:"; | cout << "请重新输入从站端口号:"; | ||||
| cin >> *Port_number; | cin >> *Port_number; | ||||
| i = 0; | i = 0; | ||||
| } while (*Port_number == 0 || *Port_number > 65535); //端口不能为0 ,端口号范围0---65535 | |||||
| } while (*Port_number == 0 || *Port_number > 65535); //端口不能为0 ,端口号范围1---65535 | |||||
| } | } | ||||
| @@ -102,42 +102,52 @@ SOCKET Init_client(string IP, unsigned int Port_number) | |||||
| } | } | ||||
| cout << "连接TCP从站成功" << endl; | cout << "连接TCP从站成功" << endl; | ||||
| TIMEVAL timeout; | TIMEVAL timeout; | ||||
| timeout.tv_sec = 20000; //ms | |||||
| timeout.tv_sec = 200; //ms | |||||
| timeout.tv_usec = 0; //us | timeout.tv_usec = 0; //us | ||||
| setsockopt(ClientSocket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval));//设置接收超时时间 | setsockopt(ClientSocket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval));//设置接收超时时间 | ||||
| return ClientSocket; | return ClientSocket; | ||||
| } | } | ||||
| /********************************************************************************************* | /********************************************************************************************* | ||||
| * 功能 : 清除接收缓冲区中的数据 | |||||
| * 描述 : 每一次发送请求前清空缓存区数据 | |||||
| * 功能 : 清除接收缓冲区中的数据和异常连接状态检测 | |||||
| * 描述 : 每一次发送请求前清空缓存区数据,检测当前套接字连接状态 | |||||
| * 输入 : ClientSocket 客户端套接字 | * 输入 : ClientSocket 客户端套接字 | ||||
| * 输出 : 无 | |||||
| * 输出 : true 连接正常 false 连接异常 | |||||
| *********************************************************************************************/ | *********************************************************************************************/ | ||||
| void Clear_recv_buf(SOCKET clientSocket) | |||||
| bool Clear_recv_buf(SOCKET clientSocket) | |||||
| { | { | ||||
| struct timeval tmOut; | |||||
| tmOut.tv_sec = 0; | |||||
| tmOut.tv_usec = 0; | |||||
| fd_set fds; | |||||
| int nRet; | |||||
| char tmp[2]; | |||||
| TIMEVAL timeout; | |||||
| timeout.tv_sec = 0; | |||||
| timeout.tv_usec = 0; | |||||
| fd_set reads; | |||||
| char tmp[100]; | |||||
| memset(tmp, 0, sizeof(tmp)); | memset(tmp, 0, sizeof(tmp)); | ||||
| while (1) | while (1) | ||||
| { | { | ||||
| FD_ZERO(&fds); | |||||
| FD_SET(clientSocket, &fds); | |||||
| nRet = select(FD_SETSIZE, &fds, NULL, NULL, &tmOut); | |||||
| if (nRet == 0) | |||||
| break; | |||||
| recv(clientSocket, tmp, 1, 0); | |||||
| FD_ZERO(&reads); | |||||
| FD_SET(clientSocket, &reads); | |||||
| int len = recv(clientSocket, tmp, 50, 0); | |||||
| int a = select(0, &reads, 0, 0, &timeout); | |||||
| if ( a == 1 && len == 0) | |||||
| return false; | |||||
| if ( a == 1&& len == (-1)) | |||||
| return false; | |||||
| if ( a == 0 && len == (-1)) | |||||
| return true; | |||||
| } | } | ||||
| } | } | ||||
| /********************************************************************************************* | |||||
| * 功能 : 打印读取从站的线圈状态 | |||||
| * 描述 : 对响应报文中的数据进行解析和显示 | |||||
| * 输入 : Response_Message 响应报文 Request_Message 请求报文 | |||||
| * 输出 : 无 | |||||
| *********************************************************************************************/ | |||||
| void Printf_Coil_date(UINT8 *Response_Message, UINT8 *Request_Message) | void Printf_Coil_date(UINT8 *Response_Message, UINT8 *Request_Message) | ||||
| { | { | ||||
| printf("从站设备ID %02X 功能码为 %02X\n", Response_Message[6], Response_Message[7]); | printf("从站设备ID %02X 功能码为 %02X\n", Response_Message[6], Response_Message[7]); | ||||
| unsigned int temp1 = ((Request_Message[8] << 8) | Request_Message[9])+1; | |||||
| unsigned int temp1 = ((Request_Message[8] << 8) | Request_Message[9]); | |||||
| unsigned int Number = ((Request_Message[10] << 8) | Request_Message[11]); | unsigned int Number = ((Request_Message[10] << 8) | Request_Message[11]); | ||||
| printf("线圈起始地址为%d \n",temp1); | printf("线圈起始地址为%d \n",temp1); | ||||
| unsigned int temp = temp1; | unsigned int temp = temp1; | ||||
| @@ -146,11 +156,17 @@ void Printf_Coil_date(UINT8 *Response_Message, UINT8 *Request_Message) | |||||
| unsigned int temp2 = temp + 7; | unsigned int temp2 = temp + 7; | ||||
| if (temp2 > temp1 + Number - 1) | if (temp2 > temp1 + Number - 1) | ||||
| temp2 = temp1 + Number - 1; | temp2 = temp1 + Number - 1; | ||||
| printf("线圈第%d --- %d的状态为:%02X \n", temp2, temp, Response_Message[9+i]); | |||||
| printf("线圈%d --- %d的状态为:%02X \n", temp2, temp, Response_Message[9+i]); | |||||
| temp = temp + 8; | temp = temp + 8; | ||||
| } | } | ||||
| } | } | ||||
| /********************************************************************************************* | |||||
| * 功能 : 打印读取从站的寄存器状态 | |||||
| * 描述 : 对响应报文中的数据进行解析和显示 | |||||
| * 输入 : Response_Message 响应报文 Request_Message 请求报文 | |||||
| * 输出 : 无 | |||||
| *********************************************************************************************/ | |||||
| void Printf_Register_date(UINT8 *Response_Message, UINT8 *Request_Message) | void Printf_Register_date(UINT8 *Response_Message, UINT8 *Request_Message) | ||||
| { | { | ||||
| printf("从站设备ID %02X 功能码为 %02X\n", Response_Message[6], Response_Message[7]); | printf("从站设备ID %02X 功能码为 %02X\n", Response_Message[6], Response_Message[7]); | ||||
| @@ -161,25 +177,34 @@ void Printf_Register_date(UINT8 *Response_Message, UINT8 *Request_Message) | |||||
| { | { | ||||
| printf("寄存器第%d的值为:%02X %02X \n", temp1++, Response_Message[9 + i], Response_Message[10+i]); | printf("寄存器第%d的值为:%02X %02X \n", temp1++, Response_Message[9 + i], Response_Message[10+i]); | ||||
| } | } | ||||
| } | } | ||||
| /********************************************************************************************* | |||||
| * 功能 : 打印读取异常响应报文信息 | |||||
| * 描述 : 对响应报文中的数据进行解析和显示 | |||||
| * 输入 : Response_Message 响应报文 | |||||
| * 输出 : 无 | |||||
| *********************************************************************************************/ | |||||
| void Printf_Anomaly_date(UINT8 *Response_Message) | void Printf_Anomaly_date(UINT8 *Response_Message) | ||||
| { | { | ||||
| UINT8 a = Response_Message[8]; | UINT8 a = Response_Message[8]; | ||||
| printf("从站设备ID %02X 功能码为 %02X\n", Response_Message[6], Response_Message[7]); | printf("从站设备ID %02X 功能码为 %02X\n", Response_Message[6], Response_Message[7]); | ||||
| switch (a) | switch (a) | ||||
| { | { | ||||
| case 0x01: printf("%02X : 从站设备不支持此功能码",a); break; | |||||
| case 0x02: printf("%02X : 指定的数据地址在从站设备中不存在",a); break; | |||||
| case 0x03: printf("%02X : 指定的数据超过范围或者不允许使用",a); break; | |||||
| case 0x04: printf("%02X : 从站设备处理响应的过程中,出现未知错误等",a); break; | |||||
| default: printf("Unkown Other Error!!!!!"); | |||||
| case 0x01: printf("%02X : 从站设备不支持此功能码\n",a); break; | |||||
| case 0x02: printf("%02X : 指定的数据地址在从站设备中不存在\n",a); break; | |||||
| case 0x03: printf("%02X : 指定的数据超过范围或者不允许使用\n",a); break; | |||||
| case 0x04: printf("%02X : 从站设备处理响应的过程中,出现未知错误等\n",a); break; | |||||
| default: printf("Unkown Other Error!!!!!\n"); | |||||
| } | } | ||||
| } | } | ||||
| /********************************************************************************************* | |||||
| * 功能 : 判断响应报文是否可以正常解析 | |||||
| * 描述 : 通过长度和异常码等判定该响应报文是否可以解析 | |||||
| * 输入 : Response_Message 响应报文 Request_Message请求报文 Response_Message_len 响应报文长度 | |||||
| * 输出 : true可以正常解析 false 无法解析 | |||||
| *********************************************************************************************/ | |||||
| bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, int Response_Message_len) | bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, int Response_Message_len) | ||||
| { | { | ||||
| if (Response_Message[7] == Request_Message[7] + 0x80 && Response_Message_len == 9)//先处理异常响应 | if (Response_Message[7] == Request_Message[7] + 0x80 && Response_Message_len == 9)//先处理异常响应 | ||||
| @@ -217,8 +242,8 @@ bool Tcp_client(string IP, unsigned int Port_number) | |||||
| cout << "初始化主站失败" << endl; | cout << "初始化主站失败" << endl; | ||||
| return false; | return false; | ||||
| } | } | ||||
| UINT8 Request_Message[260]; | |||||
| UINT8 Response_Message[260]; | |||||
| UINT8 Request_Message[300]; | |||||
| UINT8 Response_Message[300]; | |||||
| while (true) | while (true) | ||||
| { | { | ||||
| @@ -234,9 +259,23 @@ bool Tcp_client(string IP, unsigned int Port_number) | |||||
| } | } | ||||
| printf("\n"); | printf("\n"); | ||||
| Log_Note(Request_Message, 1, Request_Message_len); | Log_Note(Request_Message, 1, Request_Message_len); | ||||
| Clear_recv_buf(ClientSocket); | |||||
| send(ClientSocket, (char*)Request_Message, Request_Message_len, 0); | |||||
| memset(Response_Message, 0, 260); | |||||
| if (Clear_recv_buf(ClientSocket) == false) | |||||
| { | |||||
| printf("连接异常,请检查连接状态。\n"); | |||||
| printf("**************************** Press Enter To Close ****************************\n"); | |||||
| getchar(); | |||||
| break; | |||||
| } | |||||
| int test = send(ClientSocket, (char*)Request_Message, Request_Message_len, 0); | |||||
| if (test == (-1)) | |||||
| { | |||||
| printf("连接异常,请检查连接状态。\n"); | |||||
| printf("**************************** Press Enter To Close ****************************\n"); | |||||
| getchar(); | |||||
| break; | |||||
| } | |||||
| memset(Response_Message, 0, 300); | |||||
| int Response_Message_len = recv(ClientSocket, (char*)Response_Message, 260, 0); | int Response_Message_len = recv(ClientSocket, (char*)Response_Message, 260, 0); | ||||
| if (Response_Message_len > 0) | if (Response_Message_len > 0) | ||||
| { | { | ||||
| @@ -244,14 +283,17 @@ bool Tcp_client(string IP, unsigned int Port_number) | |||||
| printf("从站响应 :"); | printf("从站响应 :"); | ||||
| for (int i = 0; i < Response_Message_len; i++) | for (int i = 0; i < Response_Message_len; i++) | ||||
| { | { | ||||
| printf("0x%02x, ", Response_Message[i]); | |||||
| printf("%02x ", Response_Message[i]); | |||||
| } | } | ||||
| printf("\n"); | printf("\n"); | ||||
| if (Analysis_Response_Message(Response_Message, Request_Message, Response_Message_len)) | |||||
| if (!Analysis_Response_Message(Response_Message, Request_Message, Response_Message_len)) | |||||
| printf("响应报文异常\n\n"); | printf("响应报文异常\n\n"); | ||||
| } | } | ||||
| else | else | ||||
| cout << "响应超时" << endl; | cout << "响应超时" << endl; | ||||
| printf("**************************** Press Enter To Contioun ****************************\n"); | |||||
| getchar(); | |||||
| system("cls"); | |||||
| } | } | ||||
| //关闭套接字 | //关闭套接字 | ||||
| closesocket(ClientSocket); | closesocket(ClientSocket); | ||||
| @@ -156,7 +156,7 @@ unsigned int Count_Write_date_number(int Function_code, unsigned int Operations_ | |||||
| } | } | ||||
| if (Function_code == 0x10) | if (Function_code == 0x10) | ||||
| Write_date_number = Operations_Number * 2; | Write_date_number = Operations_Number * 2; | ||||
| return Write_date_number +1; | |||||
| return Write_date_number; | |||||
| } | } | ||||
| /********************************************************************************************* | /********************************************************************************************* | ||||
| @@ -229,7 +229,7 @@ int HexStringtoByte(UINT8 *Message, string Write_date, int Message_len, int Func | |||||
| { | { | ||||
| if (Write_date.length() == 0) | if (Write_date.length() == 0) | ||||
| return Message_len; | return Message_len; | ||||
| Message[Message_len] = Count_Write_date_number(Function_code, Operations_Number)-1; | |||||
| Message[Message_len] = Count_Write_date_number(Function_code, Operations_Number); | |||||
| Message_len++; | Message_len++; | ||||
| const char *b = Write_date.c_str(); | const char *b = Write_date.c_str(); | ||||
| for (unsigned int i = 0; i + 3 < Write_date.length(); i = i + 3) | for (unsigned int i = 0; i + 3 < Write_date.length(); i = i + 3) | ||||
| @@ -11,7 +11,7 @@ | |||||
| #pragma comment(lib,"ws2_32.lib") | #pragma comment(lib,"ws2_32.lib") | ||||
| using namespace std; | using namespace std; | ||||
| #define DEVICE_ID 0x09 //�구ID | |||||
| #define DEVICE_ID 0x01 //�구ID | |||||