Невозможно получить доступ к серверу Cassandra из приложения Android. Ошибка: java.net.ConnectException: localhost / 127.0.0.1: 9160 - соединение отклонено - PullRequest
0 голосов
/ 14 декабря 2011

Мое приложение Adnroid работает на AVD, а сервер Cassandra работает на Windows 7 (на той же машине). Ниже приведен фрагмент кода, который я использовал для подключения к клиенту Cassandra.

TTransport tr = new TFramedTransport(new TSocket("127.0.0.1", 9160));
TProtocol proto = new TBinaryProtocol(tr);
Cassandra.Client client = new Cassandra.Client(proto);
tr.open();

Я попытался отладить; он создает сокет с помощью isClose () = 'false' (это означает, что сокет открыт), но в дальнейшем он не может подключиться (TSocket.open ())

------------------------- Код от org.apache.thrift.transport.TSocket ----------- ---------

try {
socket_.connect(new InetSocketAddress(host_, port_), timeout_);
inputStream_ = socket_.getInputStream();
outputStream_ = socket_.getOutputStream();
} catch (IOException iox) {
close();
throw new TTransportException(TTransportException.NOT_OPEN, iox);

}

Кажется, это проблема кроссплатформенности и ОС Windows (так как приложения для Android в Linux). Есть ли лучший способ, как я могу подключиться к серверу Cassandra из приложения Android? Вы помогаете, и время высоко ценится.

Спасибо Randeep

1 Ответ

4 голосов
/ 14 декабря 2011

Я не знаю, что вы делаете, (это решило вашу проблему или нет) Но ясно, что эмулятор Android не понимает localhost или 127.0.0.1. Если вы хотите подключиться к localhost, то либоиспользуйте public IP системы или 10.0.2.2 (для локального хоста) ..

...