Skip to content

Commit 8019b3a

Browse files
committed
clean up excessive design
1 parent c6a761a commit 8019b3a

File tree

1 file changed

+9
-112
lines changed

1 file changed

+9
-112
lines changed

main.go

+9-112
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,28 @@ package main
22

33
import (
44
"flag"
5-
"github.com/klauspost/compress/zstd"
65
"log"
76
"net"
8-
"sync"
97
)
108

119
const (
1210
BUFFER_MAXSIZE = 64 * 1024
1311
)
1412

15-
1613
func main() {
1714
addrListen := flag.String("s", "", "listen to ip:port")
1815
addrConn := flag.String("c", "", "connect to ip:port")
19-
role := flag.String("role", "flip", "as: server, client")
20-
21-
// parse arguments
2216
flag.Parse()
2317

24-
if len(*addrListen) <= 0 || len(*addrConn) <= 0 {
18+
if len(*addrListen) == 0 || len(*addrConn) == 0 {
2519
flag.PrintDefaults()
2620
return
2721
}
2822

29-
Serve(*addrListen, *addrConn, *role)
23+
Serve(*addrListen, *addrConn)
3024
}
3125

32-
func Serve(addrListen, addrConn string, role string) {
33-
var comp Scrambler
34-
switch role {
35-
case "server":
36-
comp = NewCompresser()
37-
case "client":
38-
comp = &ClientCompressor{NewCompresser()}
39-
default:
40-
comp = &Flipper{}
41-
}
42-
26+
func Serve(addrListen, addrConn string) {
4327
l, err := net.Listen("tcp", addrListen)
4428
if err != nil {
4529
log.Fatalln(err)
@@ -55,15 +39,11 @@ func Serve(addrListen, addrConn string, role string) {
5539
go func() {
5640
connToServer, err := net.Dial("tcp", addrConn)
5741
if err != nil {
58-
// handle error
5942
log.Println("connect error:", err)
43+
return
6044
}
61-
var wg sync.WaitGroup
6245

6346
go func() {
64-
wg.Add(1)
65-
defer wg.Done()
66-
6747
defer connToServer.Close()
6848
defer connFromClient.Close()
6949

@@ -77,15 +57,9 @@ func Serve(addrListen, addrConn string, role string) {
7757
return
7858
}
7959

80-
// encode if this is server
81-
dbuf, err := comp.Encode(buff[:n])
82-
// decode if this is client
83-
if err != nil {
84-
log.Println("scramble error from server:", err)
85-
return
86-
}
60+
Flip(buff[:n])
8761

88-
_, err = connFromClient.Write(dbuf)
62+
_, err = connFromClient.Write(buff[:n])
8963
if err != nil {
9064
log.Println("write to client error:", err)
9165
return
@@ -94,9 +68,6 @@ func Serve(addrListen, addrConn string, role string) {
9468
}()
9569

9670
go func() {
97-
wg.Add(1)
98-
defer wg.Done()
99-
10071
defer connToServer.Close()
10172
defer connFromClient.Close()
10273

@@ -110,93 +81,19 @@ func Serve(addrListen, addrConn string, role string) {
11081
return
11182
}
11283

113-
// encode if this is client
84+
Flip(buff[:n])
11485

115-
// decode if this is sever
116-
dbuf, err := comp.Decode(buff[:n])
86+
_, err = connToServer.Write(buff[:n])
11787
if err != nil {
118-
log.Println("scramble error to client:", err)
119-
return
120-
}
121-
122-
_, err = connToServer.Write(dbuf)
123-
if err != nil {
124-
log.Println("write to client error:", err)
88+
log.Println("write to server error:", err)
12589
return
12690
}
12791
}
12892
}()
129-
130-
wg.Wait()
13193
}()
13294
}
13395
}
13496

135-
type Scrambler interface {
136-
Encode([]byte) ([]byte, error)
137-
Decode([]byte) ([]byte, error)
138-
}
139-
140-
type Flipper struct {}
141-
142-
func (f Flipper) Encode(buff []byte) ([]byte, error) {
143-
Flip(buff)
144-
return buff, nil
145-
}
146-
147-
func (f Flipper) Decode(buff []byte) ([]byte, error) {
148-
Flip(buff)
149-
return buff, nil
150-
}
151-
152-
type Compressor struct {
153-
enc *zstd.Encoder
154-
dec *zstd.Decoder
155-
dstBuf []byte
156-
}
157-
158-
/*
159-
should use
160-
// Compress input to output.
161-
func Compress(in io.Reader, out io.Writer) error {
162-
enc, err := zstd.NewWriter(out)
163-
if err != nil {
164-
return err
165-
}
166-
_, err = io.Copy(enc, in)
167-
if err != nil {
168-
enc.Close()
169-
return err
170-
}
171-
return enc.Close()
172-
}
173-
*/
174-
func NewCompresser() *Compressor {
175-
dec, _ := zstd.NewReader(nil)
176-
enc, _ := zstd.NewWriter(nil)
177-
return &Compressor{enc, dec, make([]byte, BUFFER_MAXSIZE)}
178-
}
179-
180-
func (e *Compressor) Encode(buff []byte) ([]byte, error) {
181-
return e.enc.EncodeAll(buff, e.dstBuf), nil
182-
}
183-
184-
func (e *Compressor) Decode(buff []byte) ([]byte, error) {
185-
return e.dec.DecodeAll(buff, e.dstBuf)
186-
}
187-
188-
type ClientCompressor struct {
189-
*Compressor
190-
}
191-
192-
func (e *ClientCompressor) Encode(buff []byte) ([]byte, error) {
193-
return e.dec.DecodeAll(buff, e.dstBuf)
194-
}
195-
196-
func (e *ClientCompressor) Decode(buff []byte) ([]byte, error) {
197-
return e.enc.EncodeAll(buff, e.dstBuf), nil
198-
}
199-
20097
func Flip(buff []byte) {
20198
for k, v := range buff {
20299
buff[k] = ^v

0 commit comments

Comments
 (0)