Skip to content

Commit efb315c

Browse files
Update README.md
1 parent 89c81eb commit efb315c

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

README.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,73 @@ Go TCP library: <https://github.com/chenjunpc2008/go-tcp>
44
## tcpclient
55
Go TCP client
66

7+
```
8+
accepting connection:
9+
10+
+------------+ +-----------------------------+ +----------------+
11+
| | | | | |
12+
| | | | | |
13+
| tcp client |--->| establish remote connection |--->| create session |
14+
| | | | | |
15+
| | | | | |
16+
+------------+ +-----------------------------+ +----------------+
17+
18+
in session:
19+
20+
+-----------------+ +----------------------+ +-------------------------+ +------------+
21+
| | | Handler.Depack() | | | | |
22+
| read connection |--->| unpack packet payload|--->| Handler.OnReceiveData() |--->| user logic |
23+
| | | | | | | |
24+
+-----------------+ +----------------------+ +-------------------------+ +------------+
25+
26+
+------------+ +-----------------------+ +---------------------+
27+
| | | | | Handler.Pack() |
28+
| user logic |--->| client.SendToServer() |--->| pack packet payload |
29+
| | | | | |
30+
+------------+ +-----------------------+ +---------------------+
31+
|
32+
+------------------------+ +------------------+ |
33+
| | | | |
34+
| Handler.OnSendedData() |<---| write connection |<--------|
35+
| | | |
36+
+------------------------+ +------------------+
37+
```
38+
739
## tcpserver
840
Go TCP server
941

42+
```
43+
accepting connection:
44+
45+
+------------+ +-------------------+ +----------------+
46+
| | | | | |
47+
| | | | | |
48+
| tcp server |--->| accept connection |--->| create session |
49+
| | | | | |
50+
| | | | | |
51+
+------------+ +-------------------+ +----------------+
52+
53+
in session:
54+
55+
+-----------------+ +----------------------+ +-------------------------+ +------------+
56+
| | | Handler.Depack() | | | | |
57+
| read connection |--->| unpack packet payload|--->| Handler.OnReceiveData() |--->| user logic |
58+
| | | | | | | |
59+
+-----------------+ +----------------------+ +-------------------------+ +------------+
60+
61+
+------------+ +--------------------------+ +---------------------+
62+
| | | | | Handler.Pack() |
63+
| user logic |--->| tcpserver.SendToClient() |--->| pack packet payload |
64+
| | | | | |
65+
+------------+ +--------------------------+ +---------------------+
66+
|
67+
+------------------------+ +------------------+ |
68+
| | | | |
69+
| Handler.OnSendedData() |<---| write connection |<--------|
70+
| | | |
71+
+------------------------+ +------------------+
72+
```
73+
1074
# benchmark
1175
Use ```example/pressure-server``` and ```example/pressure-client```, ```1000 concurrent clients```, ```4 KB payload``` get a result of ```100000 q/s```.
1276

0 commit comments

Comments
 (0)