当我使用2台计算机而不是1台时,GRPC无法正常工作

时间:2017-12-19 09:32:38

标签: python grpc

我编写了以下代码,用于将视频从客户端传输到服务器,然后将一个int流从服务器传输到客户端。当我在一台计算机上的两个不同的终端上制作服务器和客户端时,它可以工作但是当我在2台不同的计算机上执行相同操作时,我收到以下错误。

if(e.KeyData==(Keys.S | Keys.Control))

我只是在2台不同的计算机上设置所有这些文件。在一台计算机上,我拨打grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, Connect Failed)> ,另一台python imageTest_client.py 将消息从一台计算机发送到另一台计算机还需要做些什么?

client.py

python imageTest_server.py

server.py

import grpc
...


def run():
  channel = grpc.insecure_channel('localhost:50051')
  stub = imageTest_pb2_grpc.ImageTestStub(channel)
  for response in stub.Analyse( generateRequests() ):
      print(str(response.reply))

.proto

import grpc

class Greeter(imageTest_pb2_grpc.ImageTestServicer):

def Analyse(self, request_iterator, context):  
for req in request_iterator:
    yield imageTest_pb2.MsgReply(reply = 1 )



def serve():
   server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
   imageTest_pb2_grpc.add_ImageTestServicer_to_server(Greeter(), server)
   server.add_insecure_port('[::]:50051')
   server.start()
   try:
   while True:
       time.sleep(_ONE_DAY_IN_SECONDS)
   except KeyboardInterrupt:
       server.stop(0)

1 个答案:

答案 0 :(得分:2)

在绑定地址中使用0.0.0.0代替localhostlocalhost未通过网络公开。

编辑:抱歉,我的客户端与您的服务器混淆了。您的服务器看起来很好,但您的客户端连接到localhost。那里没有服务器。您需要在客户端代码中传递服务器的IP地址。