go rpc调用 net/rpc包报错问题求解

loner · 2023-08-09 23:20:59 · 1252 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2023-08-09 23:20:59 的主题,其中的信息可能已经有所发展或是发生改变。

go version: go1.18.3 ,项目是 mod 模式 在写好demo 执行启动 server时,遇到报错: 100x

请大神们指点一下迷津! 源码如下: server 代码:

package main

import (
    "net"
    "net/rpc"
)

type HelloService struct {
}

func (s *HelloService) Hello(request string, reply *string) error {
    *reply = "hello " + request
    return nil
}

func main() {
    listener, _ := net.Listen("tcp", ":1234")

    _ = rpc.RegisterName("HelloService", &HelloService{})
    for {
             conn, _ := listener.Accept() // 监听连接
         go rpc.ServeConn(conn)
    }

}

client 端代码:

package main

import (
    "fmt"
    "net/rpc"
)

func main() {
    // 1、建立链接 2、
    client, err := rpc.Dial("tcp", "localhost:1234")
    if err != nil {
        panic("connect error")
    }

    var reply string
    client.Call("HelloService.Hello", "superman", &reply)
    if err != nil {
        panic("remote call failed")
    }
    fmt.Println(reply)
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1252 次点击  
加入收藏 微博
1 回复  |  直到 2023-08-10 10:44:08
GGXXLL
GGXXLL · #1 · 2年之前

你给的代码运行没问题,估计是你的环境问题,我看报错中的源码对应行都是注释啊

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传