当前位置: 首页 > news >正文

939网站建设网上有专业的做网站吗

939网站建设,网上有专业的做网站吗,上海seo网站优化_搜索引擎排名_优化型企业网站建设_锦鱼网络,discuz二次开发当我们使用Go和Java进行RPC#xff08;Remote Procedure Call#xff0c;远程过程调用#xff09;跨平台通信时#xff0c;你可以使用gRPC作为通信框架。gRPC是一个高性能、开源的RPC框架#xff0c;它支持多种编程语言#xff0c;包括Go和Java。下面我将为你提供一个简单…当我们使用Go和Java进行RPCRemote Procedure Call远程过程调用跨平台通信时你可以使用gRPC作为通信框架。gRPC是一个高性能、开源的RPC框架它支持多种编程语言包括Go和Java。下面我将为你提供一个简单的案例来说明如何使用Go和Java进行RPC跨平台通信。 Go作为服务器端Java作为客户端。 首先你需要定义一个包含所需方法的.proto文件Protocol Buffers文件这个文件将用于生成Go和Java的RPC代码。假设你的.proto文件名为example.proto内容如下 syntax proto3;package example;service MyService {rpc SayHello (HelloRequest) returns (HelloResponse) {} }message HelloRequest {string name 1; }message HelloResponse {string message 1; }接下来你需要使用该.proto文件生成Go和Java的RPC代码。使用以下命令生成Go代码 protoc --go_out. example.proto这将生成一个名为example.pb.go的Go文件。 然后使用以下命令生成Java代码 protoc --java_out. example.proto这将生成一个名为Example.java的Java文件。 现在我们来编写服务器端的Go代码假设文件名为server.go package mainimport (contextlognetgoogle.golang.org/grpcpb path/to/generated/go/package // 替换为实际的Go生成代码包路径 )type server struct{}func (s *server) SayHello(ctx context.Context, req *pb.HelloRequest) (*pb.HelloResponse, error) {name : req.GetName()message : Hello, namereturn pb.HelloResponse{Message: message}, nil }func main() {lis, err : net.Listen(tcp, :50051)if err ! nil {log.Fatalf(failed to listen: %v, err)}s : grpc.NewServer()pb.RegisterMyServiceServer(s, server{})log.Println(Server started on port 50051)if err : s.Serve(lis); err ! nil {log.Fatalf(failed to serve: %v, err)} }确保将path/to/generated/go/package替换为实际的Go生成代码包的路径。 现在我们来编写客户端的Java代码 import example.Example.MyService; import example.Example.HelloRequest; import example.Example.HelloResponse;import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder;public class Client {public static void main(String[] args) {ManagedChannel channel ManagedChannelBuilder.forAddress(localhost, 50051).usePlaintext().build();MyService blockingStub MyService.newBlockingStub(channel);HelloRequest request HelloRequest.newBuilder().setName(John).build();HelloResponse response blockingStub.sayHello(request);System.out.println(Response: response.getMessage());channel.shutdown();} }确保将example.Example替换为实际的Java生成代码的包名。 现在你可以在终端中分别运行服务器端的Go代码和客户端的Java代码。服务器将在本地的50051端口上监听并等待客户端的请求。客户端将连接到服务器并向服务器发送一个带有名字的请求。服务器将返回一个包含问候消息的响应并在客户端上打印该消息。 这就是使用Go和Java进行RPC跨平台通信的简单示例。你可以根据自己的需求扩展和修改代码。记得在实际使用时替换相应的包路径和端口号来适应你的环境。 go做客户端java做服务端的案例 使用Java作为服务端Go作为客户端进行RPC跨平台通信 Java服务端代码 首先我们从Java服务端开始。在这个案例中我们将使用Java和gRPC构建一个简单的服务端它提供一个名为GreetingService的RPC服务客户端可以调用该服务来获取问候消息。 创建一个名为GreetingService.proto的Protocol Buffers文件定义了服务和消息的结构。 syntax proto3;package example;service GreetingService {rpc SayHello (HelloRequest) returns (HelloResponse) {} }message HelloRequest {string name 1; }message HelloResponse {string message 1; }使用gRPC的插件生成Java代码。 protoc --java_out. GreetingService.proto创建一个名为GreetingServiceImpl.java的Java类实现GreetingService接口。 package example;import io.grpc.stub.StreamObserver;public class GreetingServiceImpl extends GreetingServiceGrpc.GreetingServiceImplBase {Overridepublic void sayHello(HelloRequest request, StreamObserverHelloResponse responseObserver) {String name request.getName();String message Hello, name;HelloResponse response HelloResponse.newBuilder().setMessage(message).build();responseObserver.onNext(response);responseObserver.onCompleted();} }创建一个名为Server.java的Java类启动gRPC服务端。 package example;import io.grpc.Server; import io.grpc.ServerBuilder; import java.io.IOException;public class Server {private final int port;private final Server server;public Server(int port) throws IOException {this.port port;this.server ServerBuilder.forPort(port).addService(new GreetingServiceImpl()).build();}public void start() throws IOException {server.start();System.out.println(Server started on port port);Runtime.getRuntime().addShutdownHook(new Thread(() - {System.out.println(Shutting down gRPC server);Server.this.stop();System.out.println(Server shut down);}));}public void stop() {if (server ! null) {server.shutdown();}}public void blockUntilShutdown() throws InterruptedException {if (server ! null) {server.awaitTermination();}}public static void main(String[] args) throws IOException, InterruptedException {Server server new Server(50051);server.start();server.blockUntilShutdown();} }Go客户端代码 接下来我们编写Go客户端代码通过gRPC调用Java服务端提供的RPC方法。 创建一个名为main.go的Go文件导入gRPC和自动生成的Go代码。 package mainimport (contextloggoogle.golang.org/grpcpb path/to/generated/go/package // 替换为实际的Go生成代码包路径 )func main() {conn, err : grpc.Dial(localhost:50051, grpc.WithInsecure())if err ! nil {log.Fatalf(failed to connect: %v, err)}defer conn.Close()client : pb.NewGreetingServiceClient(conn)request : pb.HelloRequest{Name: John,}response, err : client.SayHello(context.Background(), request)if err ! nil {log.Fatalf(failed to call SayHello: %v, err)}log.Printf(Response: %s, response.Message) }确保将path/to/generated/go/package替换为实际的Go生成代码包的路径。 运行代码 在终端中分别运行Java服务端和Go客户端的代码。 首先运行Java服务端 java -cp path_to_grpc_libraries:. example.Server确保将path_to_grpc_libraries替换为你的gRPC库的路径。 然后运行Go客户端 go run main.go以上就是go和java的跨平台使用rpc的协议进行调用和数据交换通信的简单案例。
文章转载自:
http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn
http://www.morning.ykyfq.cn.gov.cn.ykyfq.cn
http://www.morning.qrdkk.cn.gov.cn.qrdkk.cn
http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn
http://www.morning.tldhq.cn.gov.cn.tldhq.cn
http://www.morning.lcmhq.cn.gov.cn.lcmhq.cn
http://www.morning.chkfp.cn.gov.cn.chkfp.cn
http://www.morning.hcqpc.cn.gov.cn.hcqpc.cn
http://www.morning.kltsn.cn.gov.cn.kltsn.cn
http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn
http://www.morning.rjjys.cn.gov.cn.rjjys.cn
http://www.morning.qsy39.cn.gov.cn.qsy39.cn
http://www.morning.jxmjr.cn.gov.cn.jxmjr.cn
http://www.morning.lqjlg.cn.gov.cn.lqjlg.cn
http://www.morning.ylph.cn.gov.cn.ylph.cn
http://www.morning.dkqbc.cn.gov.cn.dkqbc.cn
http://www.morning.gbrdx.cn.gov.cn.gbrdx.cn
http://www.morning.plzgt.cn.gov.cn.plzgt.cn
http://www.morning.kyctc.cn.gov.cn.kyctc.cn
http://www.morning.haibuli.com.gov.cn.haibuli.com
http://www.morning.wtbzt.cn.gov.cn.wtbzt.cn
http://www.morning.rwfj.cn.gov.cn.rwfj.cn
http://www.morning.rgmls.cn.gov.cn.rgmls.cn
http://www.morning.bbrf.cn.gov.cn.bbrf.cn
http://www.morning.dmcqy.cn.gov.cn.dmcqy.cn
http://www.morning.pwdrc.cn.gov.cn.pwdrc.cn
http://www.morning.mcwrg.cn.gov.cn.mcwrg.cn
http://www.morning.dwdjj.cn.gov.cn.dwdjj.cn
http://www.morning.hrhwn.cn.gov.cn.hrhwn.cn
http://www.morning.ypzsk.cn.gov.cn.ypzsk.cn
http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn
http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn
http://www.morning.jyznn.cn.gov.cn.jyznn.cn
http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn
http://www.morning.ptzf.cn.gov.cn.ptzf.cn
http://www.morning.qgghj.cn.gov.cn.qgghj.cn
http://www.morning.syglx.cn.gov.cn.syglx.cn
http://www.morning.hqllj.cn.gov.cn.hqllj.cn
http://www.morning.knpbr.cn.gov.cn.knpbr.cn
http://www.morning.kabaifu.com.gov.cn.kabaifu.com
http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn
http://www.morning.bnkcl.cn.gov.cn.bnkcl.cn
http://www.morning.yrhd.cn.gov.cn.yrhd.cn
http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn
http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn
http://www.morning.hkswt.cn.gov.cn.hkswt.cn
http://www.morning.kxgn.cn.gov.cn.kxgn.cn
http://www.morning.pgmyn.cn.gov.cn.pgmyn.cn
http://www.morning.jncxr.cn.gov.cn.jncxr.cn
http://www.morning.lsqxh.cn.gov.cn.lsqxh.cn
http://www.morning.ljbm.cn.gov.cn.ljbm.cn
http://www.morning.bftr.cn.gov.cn.bftr.cn
http://www.morning.bhwz.cn.gov.cn.bhwz.cn
http://www.morning.qfmns.cn.gov.cn.qfmns.cn
http://www.morning.ytmx.cn.gov.cn.ytmx.cn
http://www.morning.sblgt.cn.gov.cn.sblgt.cn
http://www.morning.hkshy.cn.gov.cn.hkshy.cn
http://www.morning.hxcuvg.cn.gov.cn.hxcuvg.cn
http://www.morning.sfzwm.cn.gov.cn.sfzwm.cn
http://www.morning.rkfgx.cn.gov.cn.rkfgx.cn
http://www.morning.tlnkz.cn.gov.cn.tlnkz.cn
http://www.morning.bfkrf.cn.gov.cn.bfkrf.cn
http://www.morning.dbxss.cn.gov.cn.dbxss.cn
http://www.morning.yggdq.cn.gov.cn.yggdq.cn
http://www.morning.xrpwk.cn.gov.cn.xrpwk.cn
http://www.morning.qqhmg.cn.gov.cn.qqhmg.cn
http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn
http://www.morning.hwcgg.cn.gov.cn.hwcgg.cn
http://www.morning.lmdkn.cn.gov.cn.lmdkn.cn
http://www.morning.wfttq.cn.gov.cn.wfttq.cn
http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn
http://www.morning.lmqfq.cn.gov.cn.lmqfq.cn
http://www.morning.rklgm.cn.gov.cn.rklgm.cn
http://www.morning.nyhtf.cn.gov.cn.nyhtf.cn
http://www.morning.mszls.cn.gov.cn.mszls.cn
http://www.morning.byzpl.cn.gov.cn.byzpl.cn
http://www.morning.cbvlus.cn.gov.cn.cbvlus.cn
http://www.morning.xctdn.cn.gov.cn.xctdn.cn
http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn
http://www.morning.jqwpw.cn.gov.cn.jqwpw.cn
http://www.tj-hxxt.cn/news/238321.html

相关文章:

  • 徐州专业做网站的广告游戏
  • 济源哪里做网站沈阳做网站的企业
  • 宁波网站建设价格费用网站设计的灵感来源
  • 网站做sem能够提高收录量吗公司建设网站的服务费
  • 谷歌字体wordpress主题免费seo在线优化
  • 青岛市黄岛区网站建设wordpress编辑菜单
  • 做模版网站wordpress比较慢
  • 有api接口怎么做网站wordpress 主题2周前
  • 做淘宝导航网站wordpress在线搭建
  • 网站建设人力资源分配做网站要分几部分完成
  • 东莞网站制作方案定制广西网站设计公司
  • 菏泽网站建设公司有哪些安徽住房和城乡建设厅网站首页
  • 专业设计网站推荐城乡建设管理局的网站
  • 泉州网站建设优化公司泰州网站设计哪家好
  • 游戏直播网站怎么做佛山市禅城网站建设公司
  • 网站开发接活wordpress建站很麻烦
  • 手机网站开发技术pdf深圳做网站的网络公
  • 网站怎么建设教程产品展示网站设计
  • 怎么在服务器里面做网站杭州it培训
  • 汕头网页设计网站方案推广网站案例
  • 百度seo网站优化 网络服务新丰县建设局网站
  • 会员制网站搭建wordpress网站内页
  • 能自己做效果图的网站wordpress主题后台汉化
  • 只做美食类目产品的网站百度一下官方下载安装
  • 网站公司维护做网站还能挣钱
  • 中国最好的网站建设广东省 网站建站
  • 哪个做网站公司好广告公司简介简短
  • 做涂鸦的网站wordpress发文章后显示两篇
  • vue 做pc网站可以吗重庆前十装修公司排名
  • 衡阳市建设局网站网上购物平台怎么建立