High performance TcpServer - 1. Network Communication Protocol

High performance TcpServer - 1. Network Communication Protocol

High-performance TcpServer - 2. create high-performance Socket server SocketAsyncEventArgs implemented (IOCP)

High performance TcpServer - 3. command channel ( treatment: substitution, stick package, trash bag )

High performance TcpServer - 4. File Channel ( treatment: sub-files, support for HTTP )

High performance TcpServer - 5. Client Management

Protocol Specification

Communication using GB2312 encoding format

 

Packet Format:

Identifier = the length of the device number # # # packet type task id # # package contents

Notes: length : 4 if less than 0, the identifier # # a length size between

 

Packet examples

1. The package is empty

HTEMP=0026#1533022506#Meter-001#01##

2. The package contains multiple fields

HTEMP=0043#1533022506#Meter-001#01#get-version@nb001#

3. The package contains multiple fields (inter-field divided by @ array within a field [{}, {}])

HTEMP=0261#WaterMeter-001#1520557005#03#buildid=44@edmid=37@meter=1228@denddate=2018-02-05 17:36:22@[{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}]#

 

Agreement

 

A heartbeat packet. (Packet type: 01)

HTEMP=0026#Meter-001#1533022506#01##

HTEMP=0028#Meter-001#1533022506#01#ok#

Two Time Synchronization (packet type: 02)

HTEMP=0026#Meter-001#1533022506#02##

HTEMP=0045#Meter-001#1533022506#02#2018-08-16 09:50:58#

Three data upload (packet type: 03)

HTEMP=0256#Meter-001#1520557005#03#buildid=44@edmid=37@meter=1228@denddate=2018-02-05 17:36:22@[{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}]#

HTEMP = 0048 # Meter-001 # 1520557005 # 03 # error @ server returns a failure! #

HTEMP=0028#Meter-001#1520557005#03#ok#

Four . Versions Query (packet type: 04) Input: Software (nb001) Output: version number

HTEMP=0044#Meter-0001#1533022507#04#get-version@nb001#

HTEMP=0028#Meter-0001#1533022507#04#2#

Five software update (package type: 05) Input: Software (nb001) Output: Number of packages

HTEMP=0042#Meter-0001#1533022508#05#get-count@nb001#

HTEMP=0029#Meter-0001#1533022508#05#16#

Six . Download (packet type: 06) Input: Package Index Output: packet data

HTEMP=0044#Meter-0001#1533022508#06#do-update@nb001@1#

HTEMP=0495#Meter-0001#1533022508#06#504B03041400000008007A640F4D6BEBFDBA000E00004D2E000007000000636F6D732E7079D51A6B73D356F6BB7FC55D7932926AC7D80EA1901DB10D8901CF244ED636FB189AF1C8D275A246B6BC924C603B9D816E29852DD09D6E976D0B944E4BB7B3DB02EDD22729FD3328099FF80B7BEE4B962C3BA4E36DBBAB99C4D23DCF7BCEB9F79C7BA4349A7C6612198E6975566750CF6F350E929194D5EE3AAE8FBC339EB8B59DD55540128FBED5C6E2BEED98CD9ED7F0D713033913B7AC0EF690EE21C3F393707647C0EC6E1446C3F57B7D2CF23412D337BA114C780A27835D4BB7C553CFB56DAB59CCB2DF#

Seven . Version update (package type: 07) Input: edmid @ version Output: results

HTEMP=0046#Meter-0001#1533022509#07#update-version@56@2#

HTEMP=0029#Meter-0001#1533022509#07#ok#

 

Guess you like

Origin www.cnblogs.com/chen1880/p/11238663.html