我编写了以下代码,用于将视频从客户端传输到服务器,然后将一个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)
答案 0 :(得分:2)
在绑定地址中使用0.0.0.0
代替localhost
。 localhost
未通过网络公开。
编辑:抱歉,我的客户端与您的服务器混淆了。您的服务器看起来很好,但您的客户端连接到localhost
。那里没有服务器。您需要在客户端代码中传递服务器的IP地址。