Ich bin neu bei Apache Thrift und ich bin in einem College-Projekt, wo ich einen C++ - Server und einen C# -Client mit Apache Thrift verbinden muss.Verbinden Sie zwei physische Computer mit Apache Thrift
Ich kann beide verbinden, wenn sie im selben PC laufen. Von Anfang an, das Tutorial mit:
TTransport transport = new TSocket("localhost",9090);
TProtocol protocol = new TBinaryProtocol(transport);
Analizador.Client client = new Analizador.Client(protocol);
Aber ich brauche sie zu trennen, eine in einem PC mit Linux und den anderen in einem PC Windows-ausgeführt wird, so sie beide im selben Netzwerk befinden. Wie oder wo muss ich konfigurieren, um dies zu ermöglichen?
Um genauer zu sein: Der Haupt-PC Windows ausgeführt wird und im Inneren ist eine virtuelle Maschine mit Ubuntu 16.04, die einen laufenden C++ Server mit hat:
int port = 9090;
shared_ptr<AnalizadorHandler> handler(new AnalizadorHandler());
shared_ptr<TProcessor> processor(new AnalizadorProcessor(handler));
shared_ptr<TServerTransport> serverTransport(new TServerSocket(port));
shared_ptr<TTransportFactory> transportFactory(new TBufferedTransportFactory());
shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory());
TSimpleServer server(processor, serverTransport, transportFactory, protocolFactory);
server.serve();
Dank für Sie Antwort so, wenn meine virtuelle Maschine 192.168.56.1 die IP habe ich, dass in den lokalen Host atribute setzen müssen? –
@EdwinAguilar: Ja, 'TTransport transport = new TSocket (" 192.168.56.1 ", 9090);' sollte tun, wenn die IP korrekt ist Wenn es immer noch nicht funktioniert, sollten Sie die Firewall-Einstellungen überprüfen. Der Name 'localhost' ist nur eine [Kurzbezeichnung für den lokalen Rechner, oder' 127.0.0.1'] (https://en.wikipedia.org/wiki/Localhost). – JensG