2
Go의 기능을 테스트하기 위해 간단한 JSONRPC 서버를 코딩했는데, 항상 오류가 발생하고 올바른 ID가없는 빈 결과가 나타납니다. 나는 다음과 같은 이동 코드를 가지고 : 주요 패키지를JSONRPC 서버가 빈 결과를 반환합니다.
import (
"log"
"net"
"net/rpc"
"net/rpc/jsonrpc"
)
type Experiment int
func (e *Experiment) Test(i *string, reply *string) error {
s := "Hello, " + *i
reply = &s
log.Println(s, reply)
return nil
}
func main() {
exp := new(Experiment)
server := rpc.NewServer()
server.Register(exp)
l, err := net.Listen("tcp", ":1234")
if err != nil {
log.Fatal("listen error:", err)
}
for {
conn, err := l.Accept()
if err != nil {
log.Fatal(err)
}
server.ServeCodec(jsonrpc.NewServerCodec(conn))
}
}
상관없이 내가 뭘하려합니다, 나는 항상 다음과 같은 응답이 없어했습니다
{"id":1,"result":"","error":null}
로깅은 모든 것이이 글은 정상적으로 작동하고 보여줍니다 서버.
2013/07/17 15:17:13 Hello, Paulo 0xc200090ac0
무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까? 나는
흠, 잘됐다! 나는 포인터를 조금 연구해야하는데, 이것은 이것이 처음으로 언어로 시작된다는 것입니다. 나는 아직 upvote 수 없지만 나중에 것입니다. 설명 할 시간을내어 주셔서 감사합니다! – Paulo