(stopper chan os.Signal, rpcPath string)
| 106 | } |
| 107 | |
| 108 | func StartRpcServer(stopper chan os.Signal, rpcPath string) { |
| 109 | addr, err := net.ResolveTCPAddr("tcp4", rpcPath) |
| 110 | if err != nil { |
| 111 | Logger.Println("Error ResolveTCPAddr:", err) |
| 112 | return |
| 113 | } |
| 114 | |
| 115 | l, err := net.ListenTCP("tcp4", addr) |
| 116 | if err != nil { |
| 117 | Logger.Println("Error ListenTCP:", err) |
| 118 | return |
| 119 | } |
| 120 | |
| 121 | defer l.Close() |
| 122 | |
| 123 | go func() { |
| 124 | <-stopper |
| 125 | Logger.Println("\nReceived Ctrl+C, shutting down...") |
| 126 | _ = l.Close() |
| 127 | os.Exit(0) |
| 128 | }() |
| 129 | |
| 130 | Logger.Println("Server waiting for client...") |
| 131 | |
| 132 | for { |
| 133 | conn, err := l.Accept() |
| 134 | if err != nil { |
| 135 | Logger.Println("Error accepting:", err) |
| 136 | return |
| 137 | } |
| 138 | |
| 139 | Logger.Println("Client connected.") |
| 140 | |
| 141 | go handleConnection(conn) |
| 142 | } |
| 143 | } |
| 144 | |
| 145 | func handleConnection(conn net.Conn) { |
| 146 | defer conn.Close() |
no test coverage detected