24 lines
360 B
Go
24 lines
360 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
"net/rpc"
|
|
)
|
|
|
|
type GrainServer struct {
|
|
Host string
|
|
}
|
|
|
|
func NewServer(hostname string) *GrainServer {
|
|
return &GrainServer{
|
|
Host: hostname,
|
|
}
|
|
}
|
|
|
|
func (s *GrainServer) Start(port int, instance Grain) (net.Listener, error) {
|
|
rpc.Register(instance)
|
|
rpc.HandleHTTP()
|
|
return net.Listen("tcp", fmt.Sprintf(":%d", port))
|
|
}
|