deno.land / x / alosaur@v1.1.1 / examples / microservice / mservice-go / main.go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package main
import ( "bufio" "encoding/json" "fmt" "net" "strconv" "strings")
const separator = "#";const endOfMessage = '\n';
func server() { ln, err := net.Listen("tcp", ":4500") if err != nil { fmt.Println(err) return } for { c, err := ln.Accept() if err != nil { fmt.Println(err) continue }
println("new connect")
go handleServerConnection(c) }}
type JsonType struct { Array []int}
func handleServerConnection(c net.Conn) { for { message, _ := bufio.NewReader(c).ReadString(endOfMessage)
req := strings.Split(message, separator); pattern := req[0]; data := req[1];
arr := JsonType{} err := json.Unmarshal([]byte(data), &arr.Array)
if err != nil { fmt.Println(err) return }
response := strconv.Itoa(sum(arr))
c.Write([]byte(pattern + separator + response + "\n")) }}
func sum(json JsonType) int { result := 0 for _, v := range json.Array { result += v } return result}
func main() { server();}
alosaur

Version Info

Tagged at
a year ago