importgolang;vargo = golang();//创建Go编译器//Go源码与字符串都是UTF-8编码,跟aardio一样很方便string.save("/gotest.go",`
package main
import (
"fmt"
"log"
"net"
"net/rpc"
"net/rpc/jsonrpc"
)
type Args struct {
X, Y int
}
var listener net.Listener
type Calculator struct{}
func (t *Calculator) Add(args *Args, reply *int) error {
*reply = args.X + args.Y
return nil
}
func (t *Calculator) Exit(args *int, reply *int) error {
listener.Close()
return nil
}
func main() {
cal := new(Calculator)
server := rpc.NewServer()
server.Register(cal)
listener, e := net.Listen("tcp", "localhost:0")
if e != nil {
fmt.Printf("error:%s\n", e)
return
} else {
fmt.Printf("%s\n", listener.Addr().String())
}
for {
if conn, err := listener.Accept(); err != nil {
log.Fatal("error: " + err.Error())
} else {
go server.ServeCodec(jsonrpc.NewServerCodec(conn))
}
}
}`)//编译Go源码生成EXE文件go.build("/gotest.go");
console.pause();