什么时候c.Call(...)返回非nil值?
c.Call(...)发生网络故障(数据包丢失或超时或类似情况)时,唯一可以返回错误吗?
如果服务器srv崩溃,会c.Call(...)返回错误吗?
具体来说,能否c.Call(...)在请求成功到达之后srv但rpcname处理程序函数返回之前返回错误?
import (
"net/rpc"
"fmt"
)
func call(srv string, rpcname string, args interface{}, reply interface{}) bool {
c, errx := rpc.Dial("unix", srv)
if errx != nil {
return false
}
defer c.Close()
err := c.Call(rpcname, args, reply)
if err == nil {
return true
}
fmt.Println(err)
return false
}
Run Code Online (Sandbox Code Playgroud)