1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 20:52:22 +00:00
2018-12-16 12:40:54 +08:00

39 lines
622 B
Go

package main
import (
"log"
"net"
"net/rpc"
)
type HelloService struct {
conn net.Conn
}
func ServeHelloService(conn net.Conn) {
p := rpc.NewServer()
p.Register(&HelloService{conn: conn})
p.ServeConn(conn)
}
func (p *HelloService) Hello(request string, reply *string) error {
*reply = "hello:" + request + ", from" + p.conn.RemoteAddr().String()
return nil
}
func main() {
listener, err := net.Listen("tcp", ":1234")
if err != nil {
log.Fatal("ListenTCP error:", err)
}
for {
conn, err := listener.Accept()
if err != nil {
log.Fatal("Accept error:", err)
}
go ServeHelloService(conn)
}
}