Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSONRPC服务器返回空结果_Json_Go_Rpc - Fatal编程技术网

JSONRPC服务器返回空结果

JSONRPC服务器返回空结果,json,go,rpc,Json,Go,Rpc,我已经编写了一个简单的JSONRPC服务器来测试Go的功能,但是我被卡住了,总是得到一个空的结果,没有错误和正确的id。我得到了以下Go代码: 包干管 import ( "log" "net" "net/rpc" "net/rpc/jsonrpc" ) type Experiment int func (e *Experiment) Test(i *string, reply *string) error { s := "Hello, " + *i

我已经编写了一个简单的JSONRPC服务器来测试Go的功能,但是我被卡住了,总是得到一个空的结果,没有错误和正确的id。我得到了以下Go代码: 包干管

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
有什么想法吗?我使用的是Go的最新稳定版本v1.1.1


谢谢

您的回复是指向字符串的指针类型。这是可以的,甚至是必需的,因为第二个参数用于返回答案。但你会:

s := "Hello, " + *i
reply = &s
也就是说:

  • 用新值构造一个新字符串
  • 让reply指向这个新字符串
这使返回的字符串完全不受影响。 试一试


您的答复是指向字符串的指针类型。这是可以的,甚至是必需的,因为第二个参数用于返回答案。但你会:

s := "Hello, " + *i
reply = &s
也就是说:

  • 用新值构造一个新字符串
  • 让reply指向这个新字符串
这使返回的字符串完全不受影响。 试一试


哼,太好了!我应该学习一点指针,因为这是我第一次尝试使用指针的语言。我还不能投票,但稍后会。谢谢你花时间解释!哼,太好了!我应该学习一点指针,因为这是我第一次尝试使用指针的语言。我还不能投票,但稍后会。谢谢你花时间解释!