MCPcopy Create free account
hub / github.com/SeeFlowerX/stackplz / StartRpcServer

Function StartRpcServer

user/rpc/rpc.go:108–143  ·  view source on GitHub ↗
(stopper chan os.Signal, rpcPath string)

Source from the content-addressed store, hash-verified

106}
107
108func 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
145func handleConnection(conn net.Conn) {
146 defer conn.Close()

Callers 1

runFuncFunction · 0.92

Calls 2

handleConnectionFunction · 0.85
CloseMethod · 0.65

Tested by

no test coverage detected