grpc 的使用

博客提供了gRPC相关操作的参考文章链接,包括https://blog.youkuaiyun.com/Wendy_LWZ/article/details/81330799等。还提及了生成gRPC文件、服务端编写、客户端编写等内容,并给出了服务端和客户端的源码相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章链接
https://blog.youkuaiyun.com/Wendy_LWZ/article/details/81330799
操作参考
https://juejin.im/post/5b19590b6fb9a01e4b062391
https://xinqiu.me/2018/08/07/learn-grpc/

参考地方


生成到grpc的文件

服务端编写

客户端编写

源码

// Filename: lwz_model.proto
 
syntax="proto3";
package lwz_example;
service model{
    rpc lwz_show(lwz_Request) returns (lwz_Response){}
}
 
 
message lwz_Request {
    string index = 1;
    string name = 2;
    int64 age = 3;
}
 
message lwz_Response{
    string stu_class = 1;
    int64 grade = 2;
}
 
 

服务端

#!/usr/bin/env python
# coding:utf-8
import grpc
import time
from concurrent import futures
import lwz_model_pb2_grpc, lwz_model_pb2
 
_ONE_DAY_IN_SECONDS = 60 * 60 * 24
_HOST = 'localhost'
_PORT = '6060'
 
class model(lwz_model_pb2_grpc.modelServicer):
    #### 随意定义-封装好的函数 #####
    def serch_student_class(self, index):
        if index == '201801':
            student_class = '5'
            return student_class
 
    def serch_student_grade(self,name ,age):
        if name =='lwz' and age == 100:
            student_grade = 100
            return student_grade
 
    ##### 真正重要的-输出函数 #####
    def lwz_show(self, request, context):
        index = request.index
        name = request.name
        age = request.age
 
        student_class = self.serch_student_class(index)
        student_grade = self.serch_student_grade(name ,age)
        print ("tansfer")
        return lwz_model_pb2.lwz_Response(stu_class = student_class,grade = student_grade)
 
def serve():
    grpcServer = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
    lwz_model_pb2_grpc.add_modelServicer_to_server(model(), grpcServer)
    grpcServer.add_insecure_port(_HOST + ':' + _PORT)
    grpcServer.start()
    try:
        while True:
            time.sleep(_ONE_DAY_IN_SECONDS)
    except KeyboardInterrupt:
        grpcServer.stop(0)
 
if __name__ == '__main__':
    serve()

客户端

import grpc
import lwz_model_pb2_grpc, lwz_model_pb2
 
_HOST = 'localhost'
_PORT = '6060'
 
def run():
    conn = grpc.insecure_channel(_HOST + ':' + _PORT)
    client = lwz_model_pb2_grpc.modelStub(channel=conn)
    response = client.lwz_show(lwz_model_pb2.lwz_Request(index = '201801',name = 'lwz',age = 100))
    print("received: " + response.stu_class)
    print("received: " + str(response.grade))
 
if __name__ == '__main__':
    run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值