forked from pebbe/zmq4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
grasslands.go
49 lines (40 loc) · 925 Bytes
/
grasslands.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
// The Grasslands Pattern
//
// The Classic ZeroMQ model, plain text with no protection at all.
package main
import (
zmq "github.com/pebbe/zmq4"
"fmt"
"log"
"runtime"
)
func main() {
// Create and bind server socket
server, err := zmq.NewSocket(zmq.PUSH)
checkErr(err)
checkErr(server.Bind("tcp://*:9000"))
// Create and connect client socket
client, err := zmq.NewSocket(zmq.PULL)
checkErr(err)
checkErr(client.Connect("tcp://127.0.0.1:9000"))
// Send a single message from server to client
_, err = server.Send("Hello", 0)
checkErr(err)
message, err := client.Recv(0)
checkErr(err)
if message != "Hello" {
log.Fatalln(message, "!= Hello")
}
fmt.Println("Grasslands test OK")
}
func checkErr(err error) {
if err != nil {
log.SetFlags(0)
_, filename, lineno, ok := runtime.Caller(1)
if ok {
log.Fatalf("%v:%v: %v", filename, lineno, err)
} else {
log.Fatalln(err)
}
}
}