本文通过grpc实现java与java之间的通信、java和python之间的相互调用、python与python之间的相互调用。

1、java实现grpc

(1)、创建一个maven项目,项目的整体结构如下图所示:

(2)、给pom.xml文件添加依赖包

(3)、编写helloworld.proto文件

文件里定义了传入传出的数据,其中,HelloRequest为请求的参数,HelloReply为响应的参数

(4)、在项目的根目录下输入:mvn compile命令

这时,会生成响应的java文件:

(5)、编写服务端代码

(6)、编写客户端代码

此时,代码编写完成,然后先执行服务端,再执行客户端,客户端会受到如下信息:

2、python实现grpc

grpc安装:pip install grpcio

grpcbuf相关库安装:pip install grpcbuf

编译工具:pip install grpcio-tools

(1)使用flask创建一个python项目,python项目的结构如下图所示:

(2)创建proto文件(与java使用的proto文件相同):

(2)在example目录下编译:

注意:在编译过程中,可能出现编译不成功的现象,可以试着一部分一部分加着编译,小编就是每次增加一点点才编译成功的。

编译成功后,会生成helloworld_pb2_grpc.py和helloworld_pb2.py文件

(3)、服务端编写:

(4)、客户端编写

先启动服务端,再启动客户端:

在上述程序中,可以启动java服务端和python客户端,或者启动java客户端和python服务端,都可以调用成功。

java与python结合使用_Java与Python使用grpc跨平台调用相关推荐

  1. java和python的优势_Java和Python哪个更好?解读Python对比其他语言的优势

    人生苦短,我用 Python,为啥这么说,因为我们码农圈有金句:学完Python,便可上天 ~ 首先 我要向各位坦诚,我对 Python 的喜爱也是从几年以前才开始的.不经历长期的痛苦教训,我们是不会 ...

  2. java转python推荐算法_java和python实现一个加权SlopeOne推荐算法

    1 importjava.util.HashMap;2 importjava.util.Map;3 importjava.util.List;4 importjava.util.ArrayList;5 ...

  3. python除法编程_Java和Python中的整数除法,取余,舍入

    关于除法,你也许觉得没什么值得谈论的,毕竟小学的时候体育老师就教过我们了.然而对于编程中使用的除法,我觉得还是有很多值得注意的细节的.为什么我想深究一下?因为我日常主要使用Java和Python编程, ...

  4. python编程单片机_JAVA或Python编程语言可不可以用来编写51单片机程序?

    网友解答: 不是.51什么的属于硬件编程了,底层的东西离不开指针,用JAVA Python就没得指针的概念,你处理个寄存器什么的还好,牵涉到内存管理什么的这玩意儿就没得用了.当然了,你可以把接口用C封 ...

  5. java线程开启不了_Java中多线程启动,为什么调用的是start方法,而不是run方法?...

    前言 大年初二,大家新年快乐,我又开始码字了.写这篇文章,源于在家和基友交流的时候,基友问到了,我猛然发现还真是这么回事,多线程启动调用的都是start,那么为什么没人掉用run呢?于是打开我的ide ...

  6. java 内联调用深度_Java中内联虚拟方法调用的性能

    java 内联调用深度 总览 动态编译的好处之一是它能够支持在虚拟方法代码上的广泛方法内联. 内联代码可提高性能时,代码仍必须检查类型(以防由于优化而更改了类型)或在多个可能的实现之间进行选择. 这导 ...

  7. java程序如何生成客户端_java webservice生成客户端代码并调用

    wsimport简介 在JDK的bin文件夹中,有一个wsimport.exe工具,可依据wsdl文件生成相应的类文件,将生存在本地这些类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用web ...

  8. java xfire指定参数名_Java编程中使用XFire框架调用WebService程序接口

    JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊. ...

  9. java servlet 执行 多次_java – 为什么contextInitialized()被多次调用?

    我在Jboss 4.2.3.GA上运行Stripes Web应用程序,并且在尝试启动JBoss时尝试调用方法.我创建了一个ServletContextListener,如下所示: public cla ...

  10. java调用python的函数_java如何调用python的.py文件,以及如何执行里面的函数,和创建...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.hmammon.service; import java.io.FileInputStream; import java.io.F ...

最新文章

  1. 如何利用计算机计算天数,计算机如何计算两个日期之间的天数
  2. java list 替换 多线程_Java多线程处理List数据
  3. 结构型模式:桥接模式
  4. C++ const修饰符和指针
  5. 配置apache支持PHP(win7)
  6. 人工智障学习笔记——机器学习(11)PCA降维
  7. 文件和目录:access函数
  8. 不同修饰符的访问权限(private,缺省(默认即default),protected,public)
  9. python︱大规模数据存储与读取、并行计算:Dask库简述
  10. Java 编程题自动评分技术的研究与实现(一)
  11. Oracle 数据库安装教程(11g)
  12. 图形评审技术(GERT)与计划评审技术(PERT)
  13. SUBMAIL315专题—云通信平台如何保护用户数据安全?
  14. 项目经理的工作就是胡搅蛮缠满地打滚
  15. 三点法求三维坐标精度误差评估实验
  16. android连路由器 mtu,解决app无网络问题,将宽带路由器MTU从1500修改成1480
  17. win10/win1桌面图标锁定,防止桌面图标移动
  18. Kubernetes Kubelete 报错 ctr: failed to create shim task: OCI runtime create failed
  19. 推荐12个免费查找文献的学术网站,建议点赞、收藏!
  20. 详解企业内部即时通讯工具特点

热门文章

  1. FreeSWITCH核心命令
  2. Builder创建者模式
  3. NoSQL 数据库的使用场景
  4. Python学习(三)-----用户输入和while循环
  5. Linux内核绑定1号cpu,Linux绑定硬件IRQ到指定CPU核
  6. powerquery分组_Power Query 基本功能使用
  7. python描述性统计工作日上班时代码_基于Python的描述性统计实践
  8. centos 的命令背景能改吗_精装改毛坯,“降价”促销?“以价换量”还能走得通吗?...
  9. java 数据结构与算法_数据结构与算法—常用数据结构及其Java实现
  10. Xp正常及错误系统抓图汇编以及解决方案