package
0.5.36
Repository: https://github.com/devlights/try-golang.git
Documentation: pkg.go.dev

# README

net/textprotoのPipelineサンプル

net/textproto パッケージは、テキストプロトコルを扱う通信処理を処理しやすくするパッケージ。

Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP.

(textprotoパッケージは、HTTP、NNTP、SMTPスタイルのテキストベースのリクエスト/レスポンスプロトコルの汎用サポートを実装します。)

textprotoパッケージにはパイプラインという仕組みがあり、これを利用すると順序保証した状態で送受信を行うことが出来る。

一連のシーケンスを連続して送信したりする場合に有効。

実行

先に「ターミナル2」を起動しておき、その後に「ターミナル1」を実行。

ターミナル1

$ task
task: [build] go build -o app .
task: [run] ./app -server &
task: [run] sleep 1
task: [run] ./app
< ADD 480635715
< ADD 480686755
< ADD 480707125
< ADD 480717295
< ADD 480732305
200 ADDED 480635715
200 ADDED 480686755
200 ADDED 480707125
200 ADDED 480717295
200 ADDED 480732305
< TOTAL
200 2403479195
< QUIT
200 BYE

ターミナル2

$ task watch
task: [watch] sudo tcpdump -i lo -n 'tcp port 8888' -S -X
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on lo, link-type EN10MB (Ethernet), snapshot length 262144 bytes
07:24:23.117926 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [S], seq 3699364872, win 43690, options [mss 65495,sackOK,TS val 3360604880 ecr 0,nop,wscale 7], length 0
        0x0000:  4500 003c 48a8 4000 4006 f411 7f00 0001  E..<H.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d408 0000 0000  ......".........
        0x0020:  a002 aaaa fe30 0000 0204 ffd7 0402 080a  .....0..........
        0x0030:  c84e c2d0 0000 0000 0103 0307            .N..........
07:24:23.117937 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [S.], seq 111167116, ack 3699364873, win 43690, options [mss 65495,sackOK,TS val 3360604880 ecr 3360604880,nop,wscale 7], length 0
        0x0000:  4500 003c 0000 4000 4006 3cba 7f00 0001  E..<..@.@.<.....
        0x0010:  7f00 0001 22b8 98e2 06a0 468c dc7f d409  ....".....F.....
        0x0020:  a012 aaaa fe30 0000 0204 ffd7 0402 080a  .....0..........
        0x0030:  c84e c2d0 c84e c2d0 0103 0307            .N...N......
07:24:23.117946 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [.], ack 111167117, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 0
        0x0000:  4500 0034 48a9 4000 4006 f418 7f00 0001  E..4H.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d409 06a0 468d  ......".......F.
        0x0020:  8010 0156 fe28 0000 0101 080a c84e c2d0  ...V.(.......N..
        0x0030:  c84e c2d0                                .N..
07:24:23.118084 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [P.], seq 3699364873:3699364888, ack 111167117, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 15
        0x0000:  4500 0043 48aa 4000 4006 f408 7f00 0001  E..CH.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d409 06a0 468d  ......".......F.
        0x0020:  8018 0156 fe37 0000 0101 080a c84e c2d0  ...V.7.......N..
        0x0030:  c84e c2d0 4144 4420 3131 3830 3334 3434  .N..ADD.11803444
        0x0040:  310d 0a                                  1..
07:24:23.118097 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [.], ack 3699364888, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 0
        0x0000:  4500 0034 47bb 4000 4006 f506 7f00 0001  E..4G.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 468d dc7f d418  ....".....F.....
        0x0020:  8010 0156 fe28 0000 0101 080a c84e c2d0  ...V.(.......N..
        0x0030:  c84e c2d0                                .N..
07:24:23.118124 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [P.], seq 3699364888:3699364903, ack 111167117, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 15
        0x0000:  4500 0043 48ab 4000 4006 f407 7f00 0001  E..CH.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d418 06a0 468d  ......".......F.
        0x0020:  8018 0156 fe37 0000 0101 080a c84e c2d0  ...V.7.......N..
        0x0030:  c84e c2d0 4144 4420 3131 3831 3034 3831  .N..ADD.11810481
        0x0040:  310d 0a                                  1..
07:24:23.118128 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [.], ack 3699364903, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 0
        0x0000:  4500 0034 47bc 4000 4006 f505 7f00 0001  E..4G.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 468d dc7f d427  ....".....F....'
        0x0020:  8010 0156 fe28 0000 0101 080a c84e c2d0  ...V.(.......N..
        0x0030:  c84e c2d0                                .N..
07:24:23.118142 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [P.], seq 3699364903:3699364918, ack 111167117, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 15
        0x0000:  4500 0043 48ac 4000 4006 f406 7f00 0001  E..CH.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d427 06a0 468d  ......"....'..F.
        0x0020:  8018 0156 fe37 0000 0101 080a c84e c2d0  ...V.7.......N..
        0x0030:  c84e c2d0 4144 4420 3131 3831 3332 3739  .N..ADD.11813279
        0x0040:  310d 0a                                  1..
07:24:23.118153 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [P.], seq 3699364918:3699364933, ack 111167117, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 15
        0x0000:  4500 0043 48ad 4000 4006 f405 7f00 0001  E..CH.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d436 06a0 468d  ......"....6..F.
        0x0020:  8018 0156 fe37 0000 0101 080a c84e c2d0  ...V.7.......N..
        0x0030:  c84e c2d0 4144 4420 3131 3831 3435 3039  .N..ADD.11814509
        0x0040:  310d 0a                                  1..
07:24:23.118154 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [P.], seq 111167117:111167130, ack 3699364903, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 13
        0x0000:  4500 0041 47bd 4000 4006 f4f7 7f00 0001  E..AG.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 468d dc7f d427  ....".....F....'
        0x0020:  8018 0156 fe35 0000 0101 080a c84e c2d0  ...V.5.......N..
        0x0030:  c84e c2d0 3230 3020 5355 4343 4553 530d  .N..200.SUCCESS.
        0x0040:  0a                                       .
07:24:23.118167 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [.], ack 111167130, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 0
        0x0000:  4500 0034 48ae 4000 4006 f413 7f00 0001  E..4H.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d445 06a0 469a  ......"....E..F.
        0x0020:  8010 0156 fe28 0000 0101 080a c84e c2d0  ...V.(.......N..
        0x0030:  c84e c2d0                                .N..
07:24:23.118170 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [P.], seq 3699364933:3699364948, ack 111167130, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 15
        0x0000:  4500 0043 48af 4000 4006 f403 7f00 0001  E..CH.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d445 06a0 469a  ......"....E..F.
        0x0020:  8018 0156 fe37 0000 0101 080a c84e c2d0  ...V.7.......N..
        0x0030:  c84e c2d0 4144 4420 3131 3831 3536 3438  .N..ADD.11815648
        0x0040:  310d 0a                                  1..
07:24:23.118188 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [.], ack 3699364948, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 0
        0x0000:  4500 0034 47be 4000 4006 f503 7f00 0001  E..4G.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 469a dc7f d454  ....".....F....T
        0x0020:  8010 0156 fe28 0000 0101 080a c84e c2d0  ...V.(.......N..
        0x0030:  c84e c2d0                                .N..
07:24:23.118203 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [P.], seq 111167130:111167143, ack 3699364948, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 13
        0x0000:  4500 0041 47bf 4000 4006 f4f5 7f00 0001  E..AG.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 469a dc7f d454  ....".....F....T
        0x0020:  8018 0156 fe35 0000 0101 080a c84e c2d0  ...V.5.......N..
        0x0030:  c84e c2d0 3230 3020 5355 4343 4553 530d  .N..200.SUCCESS.
        0x0040:  0a                                       .
07:24:23.118220 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [P.], seq 111167143:111167156, ack 3699364948, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 13
        0x0000:  4500 0041 47c0 4000 4006 f4f4 7f00 0001  E..AG.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 46a7 dc7f d454  ....".....F....T
        0x0020:  8018 0156 fe35 0000 0101 080a c84e c2d0  ...V.5.......N..
        0x0030:  c84e c2d0 3230 3020 5355 4343 4553 530d  .N..200.SUCCESS.
        0x0040:  0a                                       .
07:24:23.118232 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [P.], seq 111167156:111167169, ack 3699364948, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 13
        0x0000:  4500 0041 47c1 4000 4006 f4f3 7f00 0001  E..AG.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 46b4 dc7f d454  ....".....F....T
        0x0020:  8018 0156 fe35 0000 0101 080a c84e c2d0  ...V.5.......N..
        0x0030:  c84e c2d0 3230 3020 5355 4343 4553 530d  .N..200.SUCCESS.
        0x0040:  0a                                       .
07:24:23.118244 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [P.], seq 111167169:111167182, ack 3699364948, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 13
        0x0000:  4500 0041 47c2 4000 4006 f4f2 7f00 0001  E..AG.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 46c1 dc7f d454  ....".....F....T
        0x0020:  8018 0156 fe35 0000 0101 080a c84e c2d0  ...V.5.......N..
        0x0030:  c84e c2d0 3230 3020 5355 4343 4553 530d  .N..200.SUCCESS.
        0x0040:  0a                                       .
07:24:23.118257 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [.], ack 111167182, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 0
        0x0000:  4500 0034 48b0 4000 4006 f411 7f00 0001  E..4H.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d454 06a0 46ce  ......"....T..F.
        0x0020:  8010 0156 fe28 0000 0101 080a c84e c2d0  ...V.(.......N..
        0x0030:  c84e c2d0                                .N..
07:24:23.118305 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [P.], seq 3699364948:3699364955, ack 111167182, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 7
        0x0000:  4500 003b 48b1 4000 4006 f409 7f00 0001  E..;H.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d454 06a0 46ce  ......"....T..F.
        0x0020:  8018 0156 fe2f 0000 0101 080a c84e c2d0  ...V./.......N..
        0x0030:  c84e c2d0 544f 5441 4c0d 0a              .N..TOTAL..
07:24:23.118358 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [P.], seq 111167182:111167197, ack 3699364955, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 15
        0x0000:  4500 0043 47c3 4000 4006 f4ef 7f00 0001  E..CG.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 46ce dc7f d45b  ....".....F....[
        0x0020:  8018 0156 fe37 0000 0101 080a c84e c2d0  ...V.7.......N..
        0x0030:  c84e c2d0 3230 3020 3539 3035 3733 3631  .N..200.59057361
        0x0040:  350d 0a                                  5..
07:24:23.118405 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [P.], seq 3699364955:3699364961, ack 111167197, win 342, options [nop,nop,TS val 3360604880 ecr 3360604880], length 6
        0x0000:  4500 003a 48b2 4000 4006 f409 7f00 0001  E..:H.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d45b 06a0 46dd  ......"....[..F.
        0x0020:  8018 0156 fe2e 0000 0101 080a c84e c2d0  ...V.........N..
        0x0030:  c84e c2d0 5155 4954 0d0a                 .N..QUIT..
07:24:23.118435 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [P.], seq 111167197:111167206, ack 3699364961, win 342, options [nop,nop,TS val 3360604881 ecr 3360604880], length 9
        0x0000:  4500 003d 47c4 4000 4006 f4f4 7f00 0001  E..=G.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 46dd dc7f d461  ....".....F....a
        0x0020:  8018 0156 fe31 0000 0101 080a c84e c2d1  ...V.1.......N..
        0x0030:  c84e c2d0 3230 3020 4259 450d 0a         .N..200.BYE..
07:24:23.118459 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [F.], seq 111167206, ack 3699364961, win 342, options [nop,nop,TS val 3360604881 ecr 3360604880], length 0
        0x0000:  4500 0034 47c5 4000 4006 f4fc 7f00 0001  E..4G.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 46e6 dc7f d461  ....".....F....a
        0x0020:  8011 0156 fe28 0000 0101 080a c84e c2d1  ...V.(.......N..
        0x0030:  c84e c2d0                                .N..
07:24:23.118518 IP 127.0.0.1.39138 > 127.0.0.1.8888: Flags [F.], seq 3699364961, ack 111167207, win 342, options [nop,nop,TS val 3360604881 ecr 3360604881], length 0
        0x0000:  4500 0034 48b3 4000 4006 f40e 7f00 0001  E..4H.@.@.......
        0x0010:  7f00 0001 98e2 22b8 dc7f d461 06a0 46e7  ......"....a..F.
        0x0020:  8011 0156 fe28 0000 0101 080a c84e c2d1  ...V.(.......N..
        0x0030:  c84e c2d1                                .N..
07:24:23.118551 IP 127.0.0.1.8888 > 127.0.0.1.39138: Flags [.], ack 3699364962, win 342, options [nop,nop,TS val 3360604881 ecr 3360604881], length 0
        0x0000:  4500 0034 47c6 4000 4006 f4fb 7f00 0001  E..4G.@.@.......
        0x0010:  7f00 0001 22b8 98e2 06a0 46e7 dc7f d462  ....".....F....b
        0x0020:  8010 0156 fe28 0000 0101 080a c84e c2d1  ...V.(.......N..
        0x0030:  c84e c2d1                                .N..
^C
25 packets captured
50 packets received by filter
0 packets dropped by kernel

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author