i = 0 #新增
def ListFeatures(self, request, context):
global i #新增
i = i + 1 #新增
print(i) #新增
left = min(request.lo.longitude, request.hi.longitude)
right = max(request.lo.longitude, request.hi.longitude)
top = max(request.lo.latitude, request.hi.latitude)
bottom = min(request.lo.latitude, request.hi.latitude)
y=0 #新增
for feature in self.db:
y = y+1 #新增
print(y) #新增
if (feature.location.longitude >= left and
feature.location.longitude <= right and
feature.location.latitude >= bottom and
feature.location.latitude <= top):
yield feature
客户端
def guide_list_features(stub):
rectangle = route_guide_pb2.Rectangle(
lo=route_guide_pb2.Point(latitude=400000000, longitude=-750000000),
hi=route_guide_pb2.Point(latitude=420000000, longitude=-730000000))
print("Looking for features between 40, -75 and 42, -73")
features = stub.ListFeatures(rectangle)
i=0 #新增
for feature in features:
i = i+1 #新增
if i > 10: #新增
break #新增
print("get No.:%d" % i)
print("Feature called %s at %s" % (feature.name, feature.location))
1、client发起一次请求,server会返回多个响应,此时server方法执行几次
1次
2、若client只接收了一部分响应,server还会生成所有的响应吗
不会,比如客户端解析了10个响应,服务端本应生成100个响应,但服务端可能只会产生20或30条响应,不会把所有的结果集全处理到响应里。就像流一样,下游的行为会影响上游情况