1//
2//  Freelance server - Model 1.
3//  Trivial echo service
4//
5
6package main
7
8import (
9	zmq "github.com/pebbe/zmq4"
10
11	"fmt"
12	"os"
13)
14
15func main() {
16	if len(os.Args) < 2 {
17		fmt.Printf("I: syntax: %s <endpoint>\n", os.Args[0])
18		return
19	}
20	server, _ := zmq.NewSocket(zmq.REP)
21	server.Bind(os.Args[1])
22
23	fmt.Println("I: echo service is ready at", os.Args[1])
24	for {
25		msg, err := server.RecvMessage(0)
26		if err != nil {
27			break //  Interrupted
28		}
29		server.SendMessage(msg)
30	}
31	fmt.Println("W: interrupted")
32}
33