2016-05-14 3 views
0

Я новичок в Apache Thrift, и я в проекте колледжа, где мне нужно подключить сервер C++ и клиент C# с Apache Thrift.Соедините два физических компьютера с Apache Thrift

Я могу подключить их оба, когда они работают на одном ПК. С самого начала, учебник с:

TTransport transport = new TSocket("localhost",9090); 
TProtocol protocol = new TBinaryProtocol(transport); 
Analizador.Client client = new Analizador.Client(protocol); 

Но мне нужно, чтобы отделить их друг на ПК под управлением Linux и тому другой в Windows, под управлением компьютера, так как они находятся в одной и той же сети. Как и где мне нужно настроить, чтобы это произошло?

Чтобы быть более конкретным: Главный компьютер работает под управлением Windows, и внутри виртуальная машина работает Ubuntu 16.04, который проигрывается на C++ сервера с:

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(); 

ответ

2

"localhost" указует, что клиент будет подключаться к серверу на одна и та же машина. Сначала откройте командную строку на машине Windows и убедитесь, что работает ping 192.168.56.1.

Как сказал JensG, используйте код:

TTransport transport = new TSocket("192.168.56.1", 9090);

+0

спасибо за вам ответ, так что если моя виртуальная машина имеет IP 192.168.56.1 я должен положить, что в LOCALHOST atribute? –

+1

@EdwinAguilar: Да, 'TTransport transport = новый TSocket (" 192.168.56.1 ", 9090);' должен делать, если IP корректен. Если он все еще не работает, вы можете проверить настройки брандмауэра. Имя «localhost» - это просто [стенография локального компьютера, или «127.0.0.1'] (https://en.wikipedia.org/wiki/Localhost). – JensG

Смежные вопросы