java 调用golang_golang与java间的json-rpc跨语言调用

本文介绍了如何实现Golang与Java之间的JSON-RPC调用。通过示例展示了基于TCP协议的Golang JSON-RPC服务器与Java客户端的创建,强调了方法名注册和调用的一致性以及特定的函数签名要求。同时,指出了基于TCP调用的不便,预告了下篇将探讨使用HTTP协议进行跨语言RPC调用的实现。
摘要由CSDN通过智能技术生成

关于如何使用golang进行json-rpc的调用,网上虽然有很多的帖子,但都仅仅是golang程序间通信,没有牵涉到跨语言调用的问题。在使用golang开发服务端程序的时候,不可避免的要与其他语言的程序进行交互,特别是json-rpc这的协议,本身就应该是用在不同的平台间的调用上的(因为golang程序间的交流已经有了封闭的用gob编码解码的rpc包了,我们自然而言的会想到用json-rpc来提供对其他语言的支持)。本文就来详细探究一下如何实现golang与java之间的json-rpc调用。转载请注明出处:http://www.cnblogs.com/geomantic/p/4751859.html

首先,实现一个基于socket的java调用golang的样例(这个方法不需要第三方golang库,因为golang本身就有jsonrpc的支持库,但是仅能通过tcp协议通信,并且有一些格式上的局限,直接与其他的语言交互会有些障碍。如果要通过http协议通信的话,必须自己写一个或者用第三方的库,后面会有介绍)

package rpcz//first we create a simple golang rpc server based on socket

import ("fmt"

"net"

"net/rpc"

"net/rpc/jsonrpc")

type Counterstruct{

Sumint}

func (this *Counter) Add(i int, r *int) error {this.Sum +=i*r = this.Sum

fmt.Printf("i: %v", i)ret

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值